如何扩展’Window’打字稿界面
发布时间:2020-12-13 20:42:39 所属栏目:Windows 来源:网络整理
导读:在我的示例中,我正在尝试扩展TS Window接口以包含用于获取的polyfill.为什么无所谓.问题是“我怎么告诉TS window.fetch是一个有效的函数?” I’m doing this in VS Code,v.0.3.0 which is running TS v.1.5 (IIRC). 在我想要使用它的TS类文件中声明接口不起
在我的示例中,我正在尝试扩展TS Window接口以包含用于获取的polyfill.为什么无所谓.问题是“我怎么告诉TS window.fetch是一个有效的函数?”
在我想要使用它的TS类文件中声明接口不起作用: ///<reference path="typings/tsd.d.ts"/> interface Window { fetch:(url: string,options?: {}) => Promise<any> } ... window.fetch('/blah').then(...); // TS objects that window doesn't have fetch 但是如果我在一个单独的“.d.ts”文件中声明这个相同的接口并在我的TS类文件中引用它,那就没关系. 这是“typings / window.extend.d.ts” ///<reference path="es6-promise/es6-promise"/> interface Window { fetch:(url: string,options?: {}) => Promise<any> } 现在我可以在我的TS类文件中使用它: ///<reference path="typings/window.extend.d.ts"/> ... window.fetch('/blah').then(...); // OK 或者,我可以在我的TS类文件中使用另一个名称编写扩展接口,然后在强制转换中使用它: interface WindowX extends Window { fetch:(url: string,options?: {}) => Promise<any> } ... (<WindowX> window).fetch('/blah').then(...); // OK 为什么扩展接口工作在“d.ts”而不是原位? 我真的必须经历这些旋转吗?
如果您的文件中有顶级导入或导出(您必须在某处遇到此问题),则您的文件是外部模块.
在外部模块中,声明接口始终会创建新类型,而不是扩充现有的全局接口.这模仿了模块加载器的一般行为 – 在此文件中声明的内容不会合并或干扰全局范围内的事物. 这种回转的原因在于,在外部模块中,没有办法定义与全局范围中的变量或类型具有相同名称的新变量或类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – 组策略设计
- windows-server-2008 – 哪些事件特别导致Windows 2008将SA
- windows-server-2008 – 在8 GB RAM机器上删除页面文件有什
- Octave – 如何在Windows上安装软件包
- 汇编 – 为什么MS-DOS不初始化DS和ES寄存器?
- Windows服务控制台应用用户
- Windows如何安装Android SDK
- Microsoft BizTalk Server与Azure AppFabric Service Bus …
- dos – 告诉XCOPY复制隐藏文件夹以及隐藏文件
- windows-8 – VariableSizedWrapGrid和WrapGrid儿童大小测量
推荐文章
站长推荐
热点阅读