web-dev-qa-db-ja.com

継承とTypeScriptのエラー:Xはコンストラクター関数型ではありません

私は小さなWebアプリに取り組んでおり、TypeScript、node.js、express、mongodbを使用しています。

他の2つのクラスから継承したいこのスーパークラスがあります。クラスは以下のとおりです。コンパイルすると、継承しようとしている2つのクラスがスーパークラスについて文句を言います(同じエラーが発生します):「[クラスファイルパス(この場合は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はコンパイルできません。私がオンラインで見たすべての例には、これらのクラス/コンストラクターを作成するための他の構文はありません。私は慣習に従おうとしていますが、それを機能させることができないようです。

どんな助けでも大歓迎です!読んでくれてありがとう。

11
maria

交換

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

import { A } from './A';

または

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

export class B extends moduleA.A {
  // ...
}
19
Vadim Macagon