javascript - typescript 用导入的类扩展类

标签 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';

根index.ts文件:

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

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

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

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

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

最佳答案

直接导入classA。试试这个:

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

constructor() {
    super();

    this.do();
}

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

关于javascript - typescript 用导入的类扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44008340/

相关文章:

typescript - 在 TS 中导出类似 "module.exports"

javascript - 在 typescript 和 Angular 中对父项和子项进行排序

javascript - bootstrap-vue tabs - 打开给定 url 中 anchor 的选项卡内容

javascript - 让 karma 测试看起来更好(或者更像 rspec)

node.js - 是否可以使用 authToken 而不是客户端 ID/密码来配置 Paypal 的 Node SDK?

node.js - 如何在 Sequelize/Node.js 中创建关联对象?

javascript - Electron Java脚本将数据从渲染传递到主要对象,反之亦然

javascript - 转换为 ES6 语法

node.js - Modbus RTU slave RS-485 响应失败

angular - 我怎样才能同时使用 : map & array in [ngClass] in angular 4?