typescript2.0 - Sunt unele tipuri DOM acum „greșite” cu TypeScript 2.0 și strictNullChecks?


(Acesta folosește TypeScript 2.0.0 (npm install -g typescript@beta) cu --strictNullChecks.)

Conform lib.dom.d.ts, semnătura tipului document.querySelector este următoarea:

querySelector(selectors: string): Element;

Dar este banal să faci ca această funcție să returneze null:

document.querySelector('asdf'); // returns null (in typical cases)

Înainte de verificarea strictă a valorilor null din 2.0, acest lucru părea rezonabil, pentru că trebuia să presupui că toate valorile ar putea fi null. Dar cu verificarea strictă a valorilor null activată, ești adormit într-un fals sentiment de siguranță.

Dacă tipul lui querySelector era

querySelector(selectors: string): Element | null;

atunci lucrurile ar fi mai sigure. Este posibil ca aceste tipuri să fie actualizate, sau îmi scapă ceva despre modul în care este menit să funcționeze acest lucru?

Răspuns #1

Este probabil ca aceste tipuri să fie actualizate

da. Vă rugăm să raportați astfel de discrepanțe pe măsură ce le găsiți (exemplu problemă https://github.com/Microsoft/TypeScript/issues/10315) 🌹