相关疑难解决方法(0)

如何在TypeScript中的`window`上显式设置新属性?

我通过显式设置属性来为我的对象设置全局命名空间window.

window.MyNamespace = window.MyNamespace || {};
Run Code Online (Sandbox Code Playgroud)

TypeScript强调MyNamespace并抱怨:

属性'MyNamespace'在'window'类型的值上不存在任何"

我可以通过声明MyNamespace为环境变量并删除window显式来使代码工作,但我不想这样做.

declare var MyNamespace: any;

MyNamespace = MyNamespace || {};
Run Code Online (Sandbox Code Playgroud)

我怎样才能window留在那里让TypeScript开心?

作为旁注,我发现TypeScript抱怨特别有趣,因为它告诉我这种window类型any绝对可以包含任何东西.

typescript

502
推荐指数
25
解决办法
27万
查看次数

TypeScript错误:类型“ Window”上不存在属性“ X”

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

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

componentDidMount() {
  let FB = window.FB;
}
Run Code Online (Sandbox Code Playgroud)

TS引发错误:

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

我想修复该错误。

1(无效)

// Why doesn't this work? I have defined a type locally

type Window = {
  FB: any
}

componentDidMount() {
  let FB = window.FB;
}

// TypeScript error: Property 'FB' does not exist on type 'Window'. TS2339
Run Code Online (Sandbox Code Playgroud)

2(修复错误)

我在这里找到答案/sf/answers/3948169781/

declare const window: any;

componentDidMount() {
  let FB = window.FB;
}
// No errors, works well
Run Code Online (Sandbox Code Playgroud)

为什么即使我完全没有指定FB属性,第一个版本也不起作用,而第二个版本却起作用?

typescript reactjs create-react-app

4
推荐指数
8
解决办法
3057
查看次数

标签 统计

typescript ×2

create-react-app ×1

reactjs ×1