error TS5101: Option 'outFile' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
error TS5107: Option 'module=AMD' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
b.ts(1,17): error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor.
e.ts(5,1): error TS2322: Type '() => undefined' is not assignable to type '() => Cls'.
  Type 'undefined' is not assignable to type 'Cls'.
main.ts(7,9): error TS2454: Variable 'a' is used before being assigned.
main.ts(8,9): error TS2454: Variable 'a' is used before being assigned.


!!! error TS5101: Option 'outFile' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
!!! error TS5107: Option 'module=AMD' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
==== main.ts (2 errors) ====
    /// <reference path="d.d.ts"/>
    import {A} from "./a";
    import "D";
    import "e";
    
    let a: A;
    let b = a.getB().x.toFixed();
            ~
!!! error TS2454: Variable 'a' is used before being assigned.
    let c = a.getCls().y.toLowerCase();
            ~
!!! error TS2454: Variable 'a' is used before being assigned.
    
==== a.ts (0 errors) ====
    export class A {}
    
==== b.ts (1 errors) ====
    export class B {x: number;}
                    ~
!!! error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor.
    
==== c.d.ts (0 errors) ====
    declare module "C" {
        class Cls {y: string; }
    }
    
==== d.d.ts (0 errors) ====
    declare module "D" {
        import {A} from "a";
        import {B} from "b";
        module "a" {
            interface A {
                getB(): B;
            }
        }
    }
    
==== e.ts (1 errors) ====
    /// <reference path="c.d.ts" preserve="true"/>
    import {A} from "./a";
    import {Cls} from "C";
    
    A.prototype.getCls = function () { return undefined; }
    ~~~~~~~~~~~~~~~~~~
!!! error TS2322: Type '() => undefined' is not assignable to type '() => Cls'.
!!! error TS2322:   Type 'undefined' is not assignable to type 'Cls'.
    
    declare module "./a" {
        interface A {
            getCls(): Cls;
        }
    }
    