我喜欢定义一个全局可用的助手
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/