typeGuardConstructorPrimitiveTypes.ts(3,5): error TS2454: Variable 'var1' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(6,5): error TS2454: Variable 'var1' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(9,5): error TS2454: Variable 'var1' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(12,5): error TS2454: Variable 'var1' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(15,5): error TS2454: Variable 'var1' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(18,5): error TS2454: Variable 'var1' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(24,5): error TS2454: Variable 'var2' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(27,5): error TS2454: Variable 'var2' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(30,5): error TS2454: Variable 'var2' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(33,5): error TS2454: Variable 'var2' is used before being assigned.
typeGuardConstructorPrimitiveTypes.ts(36,5): error TS2454: Variable 'var2' is used before being assigned.


==== typeGuardConstructorPrimitiveTypes.ts (11 errors) ====
    // Narrow a union of primitive types
    let var1: string | number | boolean | any[] | symbol | bigint;
    if (var1.constructor === String) {
        ~~~~
!!! error TS2454: Variable 'var1' is used before being assigned.
        var1; // string
    }
    if (var1.constructor === Number) {
        ~~~~
!!! error TS2454: Variable 'var1' is used before being assigned.
        var1; // number
    }
    if (var1.constructor === Boolean) {
        ~~~~
!!! error TS2454: Variable 'var1' is used before being assigned.
        var1; // boolean
    }
    if (var1.constructor === Array) {
        ~~~~
!!! error TS2454: Variable 'var1' is used before being assigned.
        var1; // any[]
    }
    if (var1.constructor === Symbol) {
        ~~~~
!!! error TS2454: Variable 'var1' is used before being assigned.
        var1; // symbol
    }
    if (var1.constructor === BigInt) {
        ~~~~
!!! error TS2454: Variable 'var1' is used before being assigned.
        var1; // bigint
    }
    
    // Narrow a union of primitive object types
    let var2: String | Number | Boolean | Symbol | BigInt;
    if (var2.constructor === String) {
        ~~~~
!!! error TS2454: Variable 'var2' is used before being assigned.
        var2; // String
    }
    if (var2.constructor === Number) {
        ~~~~
!!! error TS2454: Variable 'var2' is used before being assigned.
        var2; // Number
    }
    if (var2.constructor === Boolean) {
        ~~~~
!!! error TS2454: Variable 'var2' is used before being assigned.
        var2; // Boolean
    }
    if (var2.constructor === Symbol) {
        ~~~~
!!! error TS2454: Variable 'var2' is used before being assigned.
        var2; // Symbol
    }
    if (var2.constructor === BigInt) {
        ~~~~
!!! error TS2454: Variable 'var2' is used before being assigned.
        var2; // BigInt
    }
    