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?