允许某些"不合适的"打字稿中的变量名?

时间:2018-02-13 15:10:51

标签: typescript

我使用的模块应该在浏览器中作为一个好的旧Window对象调用,因此不会作为模块导入到文件中。因此,Typescript的编译器对"Cannot find name [variable]"感到不满。有没有办法可以"白名单"打字稿无法找到的名称,但我确定它会在运行时使用吗?

2 个答案:

答案 0 :(得分:1)

您可以在window对象上声明任意数量的变量和额外属性,以便typescript知道它们,但不会为它们发出任何代码。您甚至可以添加类型注释来描述这些Javascript对象的运行时行为,或者如果您不介意进行无类型操作,则可以使用any

declare var someGlobalVar: any;
declare var someGlobalTypedVar: { 
    doSomething(): number
};

interface Window {
    someCustomWindowProp: any
}

window.someCustomWindowProp = 10 // works

您可以声明全局变量,您可以根据需要添加到现有界面,例如WindowDocument

答案 1 :(得分:1)

尝试:

declare var yourVariableName: YourType;

在您使用yourVariableName的文件的顶部。这向TypeScript编译器指示此全局变量将在运行时存在。