1
一般的なプロパティにいくつか問題があります。そしてそれのためのいくつかの解決策。以下のコードに関して、他の解決策を提案できますか?Typescriptの継承と汎用プロパティ
interface IConfig{
property?: number;
}
interface IChildConfig extends IConfig{
otherProperty?: number;
}
class Base<T extends Base<any, IConfig>, U extends IConfig>{
protected _config: U | IConfig = {
property: 10
};
public config(){
return <U>this._config;
}
}
class Child extends Base<Child, IChildConfig>{
protected _config: IChildConfig = {
property: 20,
otherProperty: 10
}
}
let a = new Child(),
b = new Base();
a.config();
b.config();
例では、_configプロパティタイプをU |エラーを回避するIConfig "| Config"パートコンパイラを削除すると、エラーが発生します。 私が理解しているように、タイプUはIConfigインターフェイスと等しくなければなりません。
はあなたのLodewijkをありがとうございます。なぜ私は異なる子供が独自のconfigまたは基本設定プロパティを持つことができるような構造を必要としているのか、という理由でconfigを拡張することができ、それ以外の場合は基本とすることができます。 – Vayrex