私は小さな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はコンパイルできません。私がオンラインで見たすべての例には、これらのクラス/コンストラクターを作成するための他の構文はありません。私は慣習に従おうとしていますが、それを機能させることができないようです。
どんな助けでも大歓迎です!読んでくれてありがとう。
交換
import A = require('./A');
と
import { A } from './A';
または
import moduleA = require('./A');
export class B extends moduleA.A {
// ...
}