相关疑难解决方法(0)

在TypeScript中创建一个全局变量

在JavaScript中,我可以这样做:

 something = 'testing';
Run Code Online (Sandbox Code Playgroud)

然后在另一个文件中:

 if (something === 'testing')
Run Code Online (Sandbox Code Playgroud)

它将something被定义(只要它们以正确的顺序被调用).

我似乎无法弄清楚如何在TypeScript中做到这一点.

这就是我尝试过的.

在.d.ts文件中:

interface Window { something: string; }
Run Code Online (Sandbox Code Playgroud)

然后在我的main.ts文件中:

 window.something = 'testing';
Run Code Online (Sandbox Code Playgroud)

然后在另一个文件中:

 if (window.something  === 'testing')
Run Code Online (Sandbox Code Playgroud)

这很有效.但我希望能够失去window.它的一部分,让我的something全球化.有没有办法在TypeScript中做到这一点?

(如果有人感兴趣,我真的想为我的应用程序设置日志记录.我希望能够log.Debug从任何文件调用而无需导入和创建对象.)

typescript

64
推荐指数
9
解决办法
9万
查看次数

TypeScript 中数字的扩展方法

我读到可以向 TypeScript 中的类型添加扩展方法,但是将其应用于内置类型 Number 时遇到一些麻烦。

这是一些代码:

文件 A:NumberExtensions.ts

// tslint:disable-next-line:class-name interface-name
export interface Number {
    isBigNumber(value: number): boolean;
}
// @ts-ignore
Number.prototype.isBigNumber = (value: number) => {
    return value > 100000;
};
Run Code Online (Sandbox Code Playgroud)

文件B:使用上述内容

import { Number } from "./NumberExtensions";

foo() {
    const aBigNumber: number = 1000000000;

    // Errors here TS2339: Property 'isBigNumber' does not exist on type 'number'.
    if (aBigNumber.isBigNumber()) {
        console.log("It's a big number!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我对 TypeScript 扩展方法的声明和使用是否正确?

extension-methods typescript

6
推荐指数
1
解决办法
7595
查看次数

标签 统计

typescript ×2

extension-methods ×1