我使用的模块应该在浏览器中作为一个好的旧Window对象调用,因此不会作为模块导入到文件中。因此,Typescript的编译器对"Cannot find name [variable]"
感到不满。有没有办法可以"白名单"打字稿无法找到的名称,但我确定它会在运行时使用吗?
答案 0 :(得分:1)
您可以在window对象上声明任意数量的变量和额外属性,以便typescript知道它们,但不会为它们发出任何代码。您甚至可以添加类型注释来描述这些Javascript对象的运行时行为,或者如果您不介意进行无类型操作,则可以使用any
。
declare var someGlobalVar: any;
declare var someGlobalTypedVar: {
doSomething(): number
};
interface Window {
someCustomWindowProp: any
}
window.someCustomWindowProp = 10 // works
您可以声明全局变量,您可以根据需要添加到现有界面,例如Window
或Document
。
答案 1 :(得分:1)
尝试:
declare var yourVariableName: YourType;
在您使用yourVariableName
的文件的顶部。这向TypeScript编译器指示此全局变量将在运行时存在。