【解決策】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
もう朝起きるのが辛くない!『スタンフォード式 最高の睡眠』西野精治著で学んだ、たった 90 分で人生が変わる睡眠革命
- review
もう「なんとなく」で決めない!『解像度を上げる』馬田隆明著で身につけた、曖昧思考を一瞬で明晰にする技術
- review
もう疲れ知らず!『最高の体調』鈴木祐著で手に入れた、一生モノの健康習慣術
- review
人生が激変!『苦しかったときの話をしようか』森岡毅著で発見した、本当に幸せなキャリアの築き方
- review
もう「何言ってるの?」とは言わせない!『バナナの魅力を 100 文字で伝えてください』柿内尚文著 で今日からあなたも伝え方の達人!
- review
もう時間に追われない!『エッセンシャル思考』グレッグ・マキューンで本当に重要なことを見抜く!