typescript用导入的类扩展类

时间:2017-05-16 17:50:19

标签: javascript node.js typescript

如果我扩展本地导出的类,它可以工作。

工作示例:

export class classA {

    constructor() {
        super();
    }
}

export class classB extends classA {

constructor() {
    super();

    this.do();
}

private do(): void {
    // do something
}

但是当我从文件外部导入classA时,它无法正常工作。

不是工作示例:

import { classA } from '../'; // I use index.ts file, so the reference is good.

export class classB extends classA {
    constructor() {
        super();

        this.do();
    }

    private do(): void {
        // do something
    }
}

文件结构:

Root/
- index.ts

- classA(folder)/
   - index.ts
   - classA.ts

- classB(folder)/
   - index.ts
   - classB.ts

classA文件夹中的index.ts文件:

export * from './classA';

root index.ts文件:

export * from './classB';
export * from './classA';

错误讯息: class classB扩展_1.classA TypeError:类扩展值undefined不是构造函数或null

我需要从此文件加载外部,因为我想在其他文件中使用classA ...任何想法为什么会发生这种情况?

[解决] : 在根index.ts文件中,顺序必须是:

export * from './classA';
export * from './classB';

2 个答案:

答案 0 :(得分:2)

在根index.ts文件中,顺序必须是:

export * from './classA';
export * from './classB';

答案 1 :(得分:1)

直接导入classA。试试这个:

import { classA } from '../classA/classA'; 
export class classB extends classA {

constructor() {
    super();

    this.do();
}

private do(): void {
    // do something
}