如何找到我的应用中定义TS类型的位置?

时间:2019-06-05 09:15:13

标签: typescript create-react-app

我已将TS添加到我的React / Redux应用程序中。

我在应用中使用window对象是这样的:

const FB = window.FB;

TS引发错误:

  

TypeScript错误:类型“ Window”上不存在属性“ FB”。 TS2339

所以我的应用程序中已经存在类型Window

如何找到它的定义位置? TS如何知道类型Window已经存在?

我要修复此错误。

2 个答案:

答案 0 :(得分:2)

所以看这个:

https://www.typescriptlang.org/docs/handbook/declaration-merging.html#global-augmentation

以下声明似乎会增强窗口定义:

declare global {
    interface Window {
        FB: SomeType;
    }
}

现在您可以:

window.FB; //no problem

答案 1 :(得分:1)

要解决您的问题,您可以扩展Window界面并添加FB属性:

interface WindowWithFB extends Window {
    FB: any
}

let windowWithFB: WindowWithFB = { ...window, FB: 'your FB value here' };