如何添加自定义 TypeScript 全局接口

Posted

技术标签:

【中文标题】如何添加自定义 TypeScript 全局接口【英文标题】:How to add custom TypeScript Global Interfaces 【发布时间】:2015-10-11 16:30:31 【问题描述】:

我在整个 CommonJS 结构化打字稿项目中使用了几个接口。我想创建一个名为“interfaces.ts”的全局文件......而不是必须导入接口或在每个 .ts 文件(样板文件)中添加引用,有没有办法全局声明它,也许在 tsconfig .json 文件?

我知道有一个名为 lib.d.ts 的全局定义文件,它基本上是全局声明的接口。我意识到我可能可以修改这个文件,但正在寻找更好的方法(抽象)。

编辑:我可能应该注意到我目前正在使用 Visual Studio Code。

【问题讨论】:

【参考方案1】:

这就是tsconfig.json 默认的工作方式。在项目的根目录中创建一个tsconfig.json,而不使用“files”属性。您可能需要重新启动 VS Code 才能识别 tsconfig.json

如果 tsconfig.json 中没有“文件”属性,编译器默认包含包含目录和子目录的所有文件。指定“文件”属性时,仅包含这些文件。

https://github.com/Microsoft/TypeScript/pull/1692

【讨论】:

啊,我明白了……我所要做的就是在定义接口时删除“导出”,现在 VSCode 将其视为全局。谢谢。【参考方案2】:

。我意识到我可能可以修改这个文件,但正在寻找更好的方法(抽象)

有一个名为globals.d.ts 的文件。此模式记录在此:http://basarat.gitbooks.io/typescript/content/docs/project/globals.html

【讨论】:

过去 3 天我读了你的书!非常令人印象深刻!我也一直在阅读您的 Typescript Collections 项目(似乎无法找到在线文档)。 'global.d.ts' 这个名字对 TypeScript 来说是特殊的吗?与使用即interfaces.d.ts有什么区别吗?谢谢 没有。名字没什么特别的。只是一个约定 我注意到您没有记录如何在用户定义的 global.d.ts 文件中正确连接。能详细点吗?

以上是关于如何添加自定义 TypeScript 全局接口的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在 TypeScript 中为非全局接口创建扩展方法?

如何在 TypeScript 中创建自定义类型

如何在 Vue Router v4 中为自定义元字段声明 TypeScript 类型接口?

如何在 TypeScript 中构建自定义的必需接口?

如何在vue.js 2应用程序中全局使用自定义装饰器?

如何添加 Jasmine 自定义匹配器 Typescript 定义?