【解決方法】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
記事Article
もっと見る- article
NestJSでバリデーションエラーをログ出力する設定を紹介
- article
NestJSで作成したAPIのレスポンスヘッダーに付与されるx-powered-by: Express を消す方法を紹介
- article
Next.jsで環境変数に別の変数を利用し柔軟に管理するdotenv-expandの活用法を紹介
- article
【2025年3月版】Cursor ProとAPI利用比較。 Claude・GPT-4o・o1・GPT-4.5の損益分岐点と選び方
- article
フォーム入力情報からZodを利用してDTO作成しへ変換処理を実施するやり方を紹介
- article
Zodバリデーションのエラーメッセージを日本語化すやり方を紹介