typescript 使用导入的类扩展类

Two*_*ois 5 javascript node.js typescript

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

工作示例:

export class classA {

    constructor() {
        super();
    }
}

export class classB extends classA {

constructor() {
    super();

    this.do();
}

private do(): void {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

但是当我从文件外部导入 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
    }
}
Run Code Online (Sandbox Code Playgroud)

文件结构:

Root/
- index.ts

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

- classB(folder)/
   - index.ts
   - classB.ts
Run Code Online (Sandbox Code Playgroud)

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

export * from './classA';
Run Code Online (Sandbox Code Playgroud)

根index.ts文件:

export * from './classB';
export * from './classA';
Run Code Online (Sandbox Code Playgroud)

错误消息:类 classB 扩展 _1.classA TypeError:类扩展值未定义不是构造函数或 null

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

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

export * from './classA';
export * from './classB';
Run Code Online (Sandbox Code Playgroud)

Two*_*ois 2

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

export * from './classA';
export * from './classB';
Run Code Online (Sandbox Code Playgroud)