typescript - 打字稿:不允许隐式引用全局变量
问题描述
我最近在使用 TS 时遇到了这个问题,可能会意外访问全局变量(例如窗口属性)。
考虑这个例子:
a.ts
// a.ts
export const postMessage = (message: string) => console.log(message);
b.ts
// Forget to import, but use libs: dom... so it compliles perfectly
// import { postMessage } from './a';
postMessage('hello'); // Oooops
看来,tslint 不能也无意处理这个案子。说,TS处理它。但可能是TS没有...
IMO,期望的行为是禁止隐式访问全局变量(全局/窗口属性)
postMessage() // Error
window.postMessage() // OK
它认为这是 eslint no-undef规则所做的。
TS repo 中似乎有一个未解决的问题,但它非常陈旧(Microsoft/TypeScript#14306)
如果您知道任何解决此问题的食谱/信息,请分享。或者也许我忘记了一些东西,而且很容易修复(因此,愚蠢的问题)
解决方案
推荐阅读
- python-3.x - 迁移问题,django.core.exceptions.FieldDoesNotExist:lightspeed.inventoryimagehistory 没有名为“imageID”的字段
- swift - 使应用程序处于非活动状态。苹果系统
- swift - 使用 SwiftUI,如何制作多个 AvAudioPlayer 实例并访问它们的属性?
- visual-studio-code - Vscode LiveServer 在浏览器上打开并显示错误
- django - Django 模型排序也是索引吗?
- r - 为什么我的 SHA256 与在线工具不同?
- javascript - 试图将数据从我的 javascript 文件传递到我的 html 时我做错了什么?
- javascript - “JavaScript” for 循环列出数组中的所有偶数
- swift - 在集合视图问题上加载更多具有滚动需求的数据
- azure - Azure Dev OPs Pipeline for Angular Visual Studio 模板