Žádná chyba typu při porovnávání boolean s null v TypeScriptu
Jsem překvapen, proč by TypeScript nehlásil chybu typu při porovnávání konstanty bool s null:
function get(): boolean {
return Math.random() > 0.5;
}
const bool = get();
if (bool !== null) {
console.log('bool is not null');
}
TypeScript Playground: https://www.typescriptlang.org/play?#code/GYVwdgxgLglg9mABAcwKZQBQEoBciBGccANqgIZIDeAUInYgE7ogNICyZUAFgHQMUATOAFtsiAHyIADDwCsAbmoBfatQgIAzlAJFiiALwp02RTGCIMhEogCE+w2BDFiWRDXqJ1YDSVQ9icMgYAORWejAaiGBw2o7OwViKKkA
Odpověď č. 1
Není to chyba TypeScriptu použít porovnání rovnosti, i když porovnání nedává smysl, protože bude vždy pravdivé nebo nepravdivé.
Ale pokud používáte TSLint, můžete vygenerovat varování, když se narazí na tento druh věci s pravidlem strict-type-predicates. (Bohužel se zdá, že dosud není integrováno do ESLint)
