typescript - aturan compiler untuk mengenali cabang if yang selalu dievaluasi


Dalam kode ini:

class Abc {
    field1: string;

    constructor(data: string) {
        if (true) {
            this.field1 = "";
        }
    }

}

tidak ada kesalahan compiler.

Tapi jika saya mengubah ekspresi dalam kondisi if menjadi data !== null, maka muncul kesalahan compiler: Property 'field1' has no initializer and is not definitely assigned in the constructor. Tapi dari sudut pandang compiler, tipe data string seharusnya tidak pernah bernilai null, itu hanya bisa string | null. Mengapa compiler memberikan kesalahan ini?