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