親クラスと同じ名前のプロパティを上書きし、新たな型を与えたいです。

実現したいこと

Aクラスを継承するBクラスがあり、protected _params という同じ名前の内容の違うオブジェクトを持っています。Bでそのオブジェクトをオーバーライドし、型アサーションをしたのですが、Bの _paramsの型がAParamsから変更できません。

該当のソースコード

typescript

1type AParams = {2 name: string,3 age: number,4 fuga: string;5};6 7class A {8 protected _params: AParams = {9 name: "A",10 age: 12,11 fuga: 'AA'12 };13}14 15type BParams = AParams & {16 name: string,17 age: number,18 hoge: number;19};20 21class B extends A {22 constructor() {23 super();24 25 this._params = {26 ...this._params,27 name: "B",28 age: 12,29 hoge: 130 } as BParams;31 }32}

エラーメッセージ

クラスBの this._params は、AParams のままです。(vscode, typescript 5.2.2)

試したこと

PT3.5の提案も以下のものを試しましたがだめでした。

typescript

1//1.2(this._params as BParams) = {3...this._params,4name: "B",5age: 12,6hoge: 17}8 9//2.10this._params = {11...this._params,12name: "B",13age: 12,14hoge: 115} as Bparams16 17//3.18this._params = {19super["_params"],20name: "B",21age: 12,22hoge: 123}

よろしくお願いします。

コメントを投稿

0 コメント