Typescript es6 import module “File is not a module error”

后端 未结 6 1755
日久生厌
日久生厌 2020-12-02 07:37

I am using typescript 1.6 with es6 modules syntax.

My files are:

test.ts:

module App {
  export class SomeClass {
    getNam         


        
6条回答
  •  攒了一身酷
    2020-12-02 08:22

    How can I accomplish that?

    Your example declares a TypeScript < 1.5 internal module, which is now called a namespace. The old module App {} syntax is now equivalent to namespace App {}. As a result, the following works:

    // test.ts
    export namespace App {
        export class SomeClass {
            getName(): string {
                return 'name';
            }
        }
    }
    
    // main.ts
    import { App } from './test';
    var a = new App.SomeClass();
    

    That being said...

    Try to avoid exporting namespaces and instead export modules (which were previously called external modules). If needs be you can use a namespace on import with the namespace import pattern like this:

    // test.ts
    export class SomeClass {
        getName(): string {
            return 'name';
        }
    }
    
    // main.ts
    import * as App from './test'; // namespace import pattern
    var a = new App.SomeClass();
    

提交回复
热议问题