Dan*_*l R 6 javascript window-object typescript
通常在我的.ts文件中,我可以通过调用以下内容来访问窗口对象:
(<any>window).myObject
Run Code Online (Sandbox Code Playgroud)
我在我的.tsx文件中收到了编译错误.有什么办法可以从.tsx文件中访问它吗?
谢谢.
您可以使用as类型断言的语法.这是类型断言的替代语法,<type>obj与JSX语法冲突:
(window as any).myObject
Run Code Online (Sandbox Code Playgroud)
上面的代码将工作,但是如果你想强类型考虑增强的Window界面上添加你的财产,所以你会得到编译时类型检查:
declare global {
interface Window {
myObject: YourObjectType;
}
}
Run Code Online (Sandbox Code Playgroud)
<type>ts 团队已弃用该语法。这是因为它和新语法之间有太多歧义jsx。相反,ts 团队引入了as类型断言运算符。
所以这个语法:
(window as any).things
Run Code Online (Sandbox Code Playgroud)
迄今为止有更多更新。
之所以进行此更改,是因为基本上,很难告诉编译器这种语法何时与类型或 jsx 元素相关。同样,符号变得更难阅读(例如见下文):
<Component>
{<String>something}
</Component>
Run Code Online (Sandbox Code Playgroud)
更多细节可以在这里找到https://basarat.gitbooks.io/typescript/docs/types/type-assertion.html#as-foo-vs-foo和这里https://github.com/Microsoft/TypeScript/问题/296
| 归档时间: |
|
| 查看次数: |
1405 次 |
| 最近记录: |