谷歌浏览器 - 在 TypeScript 中禁用特定的全局变量声明检查



我正在WebStorm IDE中为Chrome编写一个扩展。问题是 TypeScript 编译器一直在抱怨"chrome变量未定义"。如果我用 declare var chrome: any; 将其静音,那么它会抱怨"chrome变量可能尚未初始化"。

有解决方案吗?在tsconfig中显式定义全局,或者Chrome运行时可能有特定的typedef文件?

Chrome 运行时有一个特定的 typedef,可以准确地解决您的问题:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/chrome/chrome.d.ts。如果你加上这一点,一切都应该很好。

您需要使用键入进行此设置,而不是直接执行此操作。不清楚你是否已经熟悉这一点,这应该需要这样的东西:

# 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文件中,并确保它包含您的编译文件(可能会自动发生)。这应该可以做到。

相关内容

  • 没有找到相关文章

最新更新