TypeScript 如何在每个文件中声明全局变量?

标签 typescript

我喜欢定义一个全局可用的助手

global.p = console.log.bind(console)

所以我可以使用 p('some message') 而不是 console.log('some message')

但是 TypeScript 提示 p 是未定义的。有没有办法告诉 TypeScript 编译器每个文件都有一个全局变量 p

最佳答案

我想我知道你想做什么——你想让 typescript 理解 p 变量是在全局范围内设置的,而不必 import { p } from .. . 在每个文件中。

如果我没记错的话,你需要做的是做一个ambient声明:

declare const p: (message: string) => void // or whatever

这不必在每个文件中声明。将其放入名为 typings/ 的文件夹中的 d.ts 文件中,然后将该文件包含在您的 tsconfig 中:

"include": [
    "typings/**/*",
    ...
],

注意:您的 d.ts 文件不能导入任何其他模块。但它可以使用在其他 d.ts 文件中声明的其他环境类型,而无需导入它们。如果您导入某些内容,则 typescript 不会将您的文件视为环境声明,并且它不会起作用。

关于TypeScript 如何在每个文件中声明全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47794338/

相关文章:

javascript - Typescript reducer 问题

typescript - 是否可以根据数组值强类型化对象的键?

html - AGM map 填充容器

typescript - react-native-video 5.2.0 Android 构建错误 RNC 0.66.3

angular - 如何从字符串中获取验证器函数

angular - 条件@HostBinding 取决于@Input()

typescript - Sequelize 更新不接受 `null` 作为 typescript 的属性

reactjs - 如何在 react 和 typescript 中将粗体标签插入模板文字字符串

reactjs - 从生产中的标签中删除 JSX 数据属性

typescript - 我需要取消订阅 Observable.of 吗?