(这是使用TypeScript 2.0.0(npm install -g typescript@beta
)和--strictNullChecks
。)
根据lib.dom.d.ts,document.querySelector
的类型签名如下:
querySelector(selectors: string): Element;
但是让这个函数返回null是微不足道的:
document.querySelector('asdf'); // returns null (in typical cases)
在2.0的严格空检查之前,这似乎是合理的,因为您必须假设所有值都可能为空。但是,通过严格的空值检查,您会陷入虚假的安全感。
如果querySelector
的类型是
querySelector(selectors: string): Element | null;
然后事情会更安全。这些类型是否可能会更新,或者我错过了一些有关它的工作方式的信息?
答案 0 :(得分:2)
这些类型是否可能更新
是肯定的。请在发现时报告此类差异(示例问题https://github.com/Microsoft/TypeScript/issues/10315)