1
我需要检查全局窗口中是否有可能存在或不存在的init_data
对象。试图直接访问它Typescript抱怨:Property 'init_data' does not exist on type 'Window'
如何检查Typescript中全局窗口对象的条件属性
我有一个工作的解决方法,但它不再适用于Typescript 2.4。
的解决方法是:
interface Window {
init_data?: any
}
const isLoggedIn = function() {
let win:Window = window
return win.init_data ? true : false
}
现在,这引发错误:error TS2559: Type 'Window' has no properties in common with type 'Window'.
感谢那些工作!我不明白为什么打字稿不会抱怨?或者为什么它起初抱怨? – micahblu
当您使用foo.bar时,TypeScript会检查该条的确是foo的一个声明属性。当你使用foo ['bar']时,你将foo视为词典/地图。这是您告诉TS编译器bar是foo的动态属性的方式。因此它不检查该财产是否存在。 –
谢谢您的澄清〜! – micahblu