在 TypeScript 中禁用特定的全局变量声明检查
Disable specific global var declaration check in TypeScript
我正在 WebStorm IDE 中为 Chrome 编写扩展。问题是 TypeScript 编译器一直抱怨“chrome
变量未定义”。如果我用 declare var chrome: any;
使它静音,那么它会抱怨“chrome
变量可能尚未初始化”。
有解决办法吗?在 tsconfig
中明确定义全局,或者可能有特定的 typedef 文件用于 Chrome 运行时?
Chrome 运行时有一个特定的类型定义,可以准确解决您的问题:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/chrome/chrome.d.ts。如果你添加它,一切都会很好地工作。
您需要使用 Typings 进行设置,而不是直接进行。不清楚你是否已经熟悉它,这应该需要这样的东西:
# Install Typings on your system
npm install typings --global
# Install the Chrome type definitions from DefinitelyTyped ('dt')
typings install dt~chrome --global --save
更一般地说,如果您不想使用上面的正确类型定义,上面的 declare var
语句足以禁用 TypeScript 对 chrome
变量的检查并使其编译成功(或者如果您在其他类似情况下找不到)。
您仍然看到的警告只是来自 WebStorm。我不确定到底需要什么才能使它静音,但我希望将它移动到外部类型定义才能工作。只需将相同的代码 - declare var chrome: any
- 添加到新的 chrome.d.ts 文件中,并确保它包含在你的编译文件中(可能会自动发生)。应该可以了。
我正在 WebStorm IDE 中为 Chrome 编写扩展。问题是 TypeScript 编译器一直抱怨“chrome
变量未定义”。如果我用 declare var chrome: any;
使它静音,那么它会抱怨“chrome
变量可能尚未初始化”。
有解决办法吗?在 tsconfig
中明确定义全局,或者可能有特定的 typedef 文件用于 Chrome 运行时?
Chrome 运行时有一个特定的类型定义,可以准确解决您的问题:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/chrome/chrome.d.ts。如果你添加它,一切都会很好地工作。
您需要使用 Typings 进行设置,而不是直接进行。不清楚你是否已经熟悉它,这应该需要这样的东西:
# Install Typings on your system
npm install typings --global
# Install the Chrome type definitions from DefinitelyTyped ('dt')
typings install dt~chrome --global --save
更一般地说,如果您不想使用上面的正确类型定义,上面的 declare var
语句足以禁用 TypeScript 对 chrome
变量的检查并使其编译成功(或者如果您在其他类似情况下找不到)。
您仍然看到的警告只是来自 WebStorm。我不确定到底需要什么才能使它静音,但我希望将它移动到外部类型定义才能工作。只需将相同的代码 - declare var chrome: any
- 添加到新的 chrome.d.ts 文件中,并确保它包含在你的编译文件中(可能会自动发生)。应该可以了。