typescript - kompilatorregler för att känna igen alltid utvärderade grenar av if
I den här koden:
class Abc {
field1: string;
constructor(data: string) {
if (true) {
this.field1 = "";
}
}
}
det finns inget kompilatorfel.
Men om jag ändrar uttrycket i if-villkoret till data !== null, då blir det ett kompileringsfel: Property 'field1' has no initializer and is not definitely assigned in the constructor. Men ur kompilatorns synvinkel bör datatypen string aldrig vara null, det kan bara vara string | null. Varför ger kompilatorn detta fel?