typescript - 打字稿:使用“.d.ts”文件将功能添加到“窗口”
问题描述
我有一个遗留的 *.js 应用程序,并希望将它的一部分移植到 typescript。
到目前为止,我为大多数使用的包找到了@types 定义,但是窗口对象中添加了一个全局函数。
我可以通过在 *.ts 文件的开头添加这个来修复编译错误:
declare global {
interface Window {
openConformationModal?: any;
}
}
现在 obv 我不想将它包含在我的所有 *.ts 中,所以我想将它添加到 *.d.ts 文件中,以便在所有包中都可以识别它。
问题是,如果我将相同的文件添加到例如 window.d.ts 文件中,它不会被识别。我知道找到了文件夹中的类型,因为我添加了它
{
...,
"compilerOptions": {
....
"typeRoots": [
"FFOLDERPATH_TO_D_TS_FILE"
]
}
}
并且发现了另一个 *.d.ts 。
PS:解决方案基于您如何在 TypeScript 中的“window”上显式设置新属性?
解决方案
我在这个问题的后面找到了它:https ://stackoverflow.com/a/40698148
interface Window {
MyNamespace: any;
}
完整答案:
如果您使用的是TypeScript 定义管理器,请按照以下步骤操作!
npm install typings --global
创建typings/custom/window.d.ts
:
interface Window {
MyNamespace: any;
}
declare var window: Window;
安装您的自定义类型:
typings install file:typings/custom/window.d.ts --save --global
完成,使用它!打字稿不会再抱怨了:
window.MyNamespace = window.MyNamespace || {};
推荐阅读
- c - 如果接口丢失了 IP 地址,close() 不会关闭 tcp 连接
- javascript - 如何将模型与 html 中另一个模型的值绑定?
- django - 无法为包含自定义模型字段的 django 模型编写测试
- vuejs2 - VueJS 插件冲突
- java - Eclipse IDE 未启动
- dialogflow-es - 如何使用spring java给出快速回复(Dialogflow)?
- android - 如何在不同类的回收站视图中添加项目
- java - 将相机捕获图像显示到 gridview
- java - Java 中 AutoCommit 语句的最佳实践,用于通过 JDBC 使用 MySQL
- python - Kivy 选择焦点