commonjs.cts(1,1): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
commonjs.cts(2,1): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
index.ts(3,17): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
index.ts(6,11): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
index.ts(10,11): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
index.ts(16,11): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
index.ts(17,15): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
index.ts(22,6): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
index.ts(26,1): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
index.ts(28,12): error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.


==== index.ts (8 errors) ====
    class MyClassErr {
        // No parameter properties
        constructor(public foo: string) { }
                    ~~~~~~~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
    }
    
    namespace IllegalBecauseInstantiated {
              ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
        export const m = 1;
    }
    
    namespace AlsoIllegalBecauseInstantiated {
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
        class PrivateClass {
    
        }
    }
    
    namespace IllegalBecauseNestedInstantiated {
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
        namespace Nested {
                  ~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
            export const m = 1;
        }
    }
    
    enum NotLegalEnum {
         ~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
        B = 1
    }
    
    import NoGoodAlias = NotLegalEnum.B;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
    
    const enum NotLegalConstEnum {
               ~~~~~~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
        C = 2
    }
    
    // No errors after this point
    class MyClassOk {
        // Not a parameter property, ok
        constructor(foo: string) { }
    }
    
    // Note for implementors: This should not be an error
    // as this entire namespace block is fully erased
    namespace NotInstantiated {
        export interface JustAType { }
        export type ATypeInANamespace = {};
        namespace Nested {
            export type ATypeInANamespace = {};
        }
    }
    declare namespace AmbientIsNotInstantiated {
        export const stillOk = 12;
    }
    
    declare enum LegalEnum {
        A = 1
    }
    
    declare namespace AmbientStuff {
        namespace Nested {
            export const stillOk = 12;
        }
        enum EnumInAmbientContext {
            B = 1
        }
    
        import FineAlias = EnumInAmbientContext.B;
    }
    
==== commonjs.cts (2 errors) ====
    import foo = require("./other.cjs");
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
    export = foo;
    ~~~~~~~~~~~~~
!!! error TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
    
    
==== other.d.cts (0 errors) ====
    declare function foo(): void;
    export = foo;
    
    
==== esm.mts (0 errors) ====
    const foo = 1234;
    export default foo;
    