質問編集履歴

2

コードの肝心な行を間違えていました。

2023/09/19 09:18

投稿

honamin
honamin

スコア5

test CHANGED
File without changes
test CHANGED
@@ -28,6 +28,7 @@
28
28
  super();
29
29
 
30
30
  this._params = {
31
+ ...this._params,
31
32
  name: "B",
32
33
  age: 12,
33
34
  hoge: 1

1

codeを読みやすくしました。

2023/09/19 09:17

投稿

honamin
honamin

スコア5

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
  Aクラスを継承するBクラスがあり、protected _params という同じ名前の内容の違うオブジェクトを持っています。Bでそのオブジェクトをオーバーライドし、型アサーションをしたのですが、Bの _paramsの型がAParamsから変更できません。
3
3
 
4
4
  ### 該当のソースコード
5
-
5
+ ``` typescript
6
6
  type AParams = {
7
7
  name: string,
8
8
  age: number,
@@ -34,7 +34,7 @@
34
34
  } as BParams;
35
35
  }
36
36
  }
37
-
37
+ ```
38
38
  ### エラーメッセージ
39
39
 
40
40
  クラスBの this._params は、AParams のままです。(vscode, typescript 5.2.2)
@@ -42,8 +42,8 @@
42
42
  ### 試したこと
43
43
 
44
44
  PT3.5の提案も以下のものを試しましたがだめでした。
45
-
45
+ ``` typescript
46
- 1.
46
+ //1.
47
47
  (this._params as BParams) = {
48
48
  ...this._params,
49
49
  name: "B",
@@ -51,7 +51,7 @@
51
51
  hoge: 1
52
52
  }
53
53
 
54
- 2.
54
+ //2.
55
55
  this._params = {
56
56
  ...this._params,
57
57
  name: "B",
@@ -59,12 +59,12 @@
59
59
  hoge: 1
60
60
  } as Bparams
61
61
 
62
- 3.
62
+ //3.
63
63
  this._params = {
64
64
  super["_params"],
65
65
  name: "B",
66
66
  age: 12,
67
67
  hoge: 1
68
68
  }
69
-
69
+ ```
70
70
  よろしくお願いします。