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) 🌹