如何在 TypeScript 3.x 中使用匯入的類型描述 window 對象中的自訂屬性
我如何宣告 ("typescript": "3.x.x") 裡面,window 對象中有某個變數及其類型?
例如,我有 window.foo={ bar: 'baz' },我該如何宣告它?以前這樣做的方法是:
declare global {
interface Window {
foo: { bar: string }
}
}
而且它產生了這個錯誤
TS2669: 全域範圍的增強只能直接巢狀於外部模組或環境模組宣告中。
看起來只要在某個 d.ts 文件中添加一條記錄就可以了。像這樣:
interface Window {
foo: { bar: string }
}
但據我所理解,在這種情況下,我無法在該文件中導入某些類型並在聲明中使用它們,例如用於 string 的情況。
那如果我想做類似那樣的事情呢:
import { MyTypeFromSomewhere } from './somewhere'
interface Window {
foo: { bar: MyTypeFromSomewhere }
}
我如何能擴展 Window 介面並為它指定新屬性的類型?