TypeScript 2.0和strictNullChecks现在有些DOM类型“错误”吗?

时间:2016-08-28 05:17:20

标签: typescript typescript2.0

(这是使用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;
然后事情会更安全。这些类型是否可能会更新,或者我错过了一些有关它的工作方式的信息?

1 个答案:

答案 0 :(得分:2)

  

这些类型是否可能更新

是肯定的。请在发现时报告此类差异(示例问题https://github.com/Microsoft/TypeScript/issues/10315