Cannot assign to 'x' because it is a read-only property
TypeScriptで読み取り専用プロパティに代入しようとした場合のエラー
概要
Cannot assign to 'x' because it is a read-only property は、TypeScriptで readonly 修飾子が付いたプロパティや、Readonly<T> 型のオブジェクトのプロパティに値を代入しようとした場合に発生するコンパイルエラーです。
エラーメッセージ
error TS2540: Cannot assign to 'name' because it is a read-only property.
error TS2540: Cannot assign to '0' because it is a read-only property.
原因
1. readonly プロパティへの代入
| |
2. Readonly 型
| |
3. ReadonlyArray
| |
4. as const アサーション
| |
解決策
1. 新しいオブジェクトを作成
| |
2. readonly を削除(設計を見直す)
| |
3. Mutableユーティリティ型を作成
| |
4. 配列の場合
| |
5. クラスでの readonly
| |
イミュータブルパターン
| |
関連エラー
関連エラー
TypeScript の他のエラー
この記事は役に立ちましたか?