继承和TypeScript出错:X不是构造函数类型

时间:2016-02-06 17:28:05

标签: javascript inheritance typescript

我正在使用一个小型的webapp,我正在使用typescript,node.js,express和mongodb。

我有这个超级类,我想要继承其他两个类。课程如下。当我编译时,尝试继承的两个类抱怨超类(给出相同的错误): " [类文件路径(在本例中为A)]不是构造函数类型"

A.ts

export class A
{
    //private fields...

    constructor(username: string, password: string, firstName: string,
        lastName: string, accountType: string) 
    {
        // initialisation
    }
}

B.ts

import A = require('./A);
export class B extends A
{
    constructor(username: string, password: string, firstName: string,
        lastName: string, accountType: string) 
    {
        super(username, password, firstName, lastName, accountType);
    }
}

C.ts

import A = require('./A );
export class C extends A
{
    constructor(username: string, password: string, firstName: string,
        lastName: string, accountType: string) 
    {
        super(username, password, firstName, lastName, accountType);
    }
}

这非常简单,但C类和B类无法编译。我在网上看到的所有例子都没有任何其他语法来编写这些类/构造函数。我试图遵循惯例,但似乎无法让它发挥作用。

任何帮助将不胜感激!谢谢你的阅读。

1 个答案:

答案 0 :(得分:16)

替换

import A = require('./A');

import { A } from './A';

import moduleA = require('./A');

export class B extends moduleA.A {
  // ...
}