通常の配列メソッドに加えて独自のメソッドを持つArrayから派生した新しいクラスを作りたいと思います。es6子クラスにメソッドを追加する
export class ObjectCollection<T extends Iidentifier> extends Array<T> {
constructor(collection: T[] = []) {
super(...collection);
}
// used for getting instance from a collection of objects
public getInstance(id: Id) {
return this.find(item => item.Id.toString() === id.toString()) || new
Array<T>();
}
}
また、そのクラスを継承する子クラスもあります。
export class TargetCategories extends ObjectCollection<TargetCategory> {
constructor(categories: TargetCategory[] = []) {
super(categories);
}
public getCategoryType(id: Iidentifier): string {
return this[id].Category.length < 2 ? "dummy" : "saved";
}
}
私がTargetCategoriesオブジェクトをインスタンス化するとき、私は配列にあるメソッドしか使用できません。私はgetCategoryTypeやgetInstanceのようなものを呼び出すことができません。
実行時またはコンパイル時に?あなたはどんなエラーを出していますか?どのようにTargetCategoriesのインスタンスを作成して使用していますか? –
新しいTargetCategories()を使って試してみましたが、インスタンスからそれらのメソッドにアクセスすることはできません。メソッドにアクセスできる唯一の方法は、TargetCategories.prototype.sayのようなクラスメソッドのように使用する場合です。 –
コンパイル時またはランタイムエラーですか?あなたのコードを共有できますか?私はあなたのコードを使用し、欠けている部分を埋め、それは働き、コンパイルされ、クロムで動いた。 –