【解決策】TypeScriptで発生するTS2564エラーの対応

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
TypeScript で開発している際にTS2564エラーが発生したためその解決手順をまとめています。
環境
- TypeScript 4.7.4
発生したエラー
consoleerror TS2564: Property 'prop' has no initializer and is not definitely assigned in the constructor.
原因
原因はプロパティが初期化されていないことにより発生するエラーとなります。
typescriptclass Hoge {
prop: string;
}
解決方法
いずれかの形で解決を実施します。
- コンストラクタで初期化する
initializer
で初期化する- undefinedとのユニオン型で型注釈する
コンストラクタで初期化する
コンストラクタで初期化する場合は下記のように対応します。
typescriptclass Hoge {
prop: number;
constructor() {
this.prop = 1;
}
}
initializerで初期化する
initializerで初期化する場合は下記のように対応します。
typescriptclass Hoge {
prop: number = 1;
}
undefinedとのユニオン型で型注釈する
オプショナルで対応場合は下記のように対応します。
typescriptclass Hoge {
prop?: number;
}
ユニオン型を定義する場合は下記のように対応します。
typescriptclass Foo {
prop: number | undefined;
}
暫定で対応
暫定で対応したい場合はtsconfigへ下記のるルールを追加すると暫定としてエラーは解消します。
json"strictPropertyInitialization": false
- review
新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来
- review
人類はなぜ地球を支配できた?『サピエンス全史 上巻』ユヴァル・ノア・ハラリが解き明かす驚愕の真実
- review
え?世界はこんなに良くなってた!『FACTFULNESS』ハンス・ロスリングが暴く 10 の思い込みの正体
- review
瞬時に答えが出る脳に変身!『ゼロ秒思考』赤羽雄二が贈る思考力爆上げトレーニング
- review
関西弁のゾウに人生変えられた!『夢をかなえるゾウ 1』水野敬也が教えてくれた成功の本質