【解決方法】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
Dockerの利用していないゴミを掃除しディスクスペースを解放するいくつかのやり方を紹介
- article
Next.js のバンドルサイズを可視化する@next/bundle-analyzer の紹介
- article
VSCodeでTypescriptファイルのimport補完で相対パスではなくエイリアスするための設定
- article
UUIDより短いユニークなIDを生成できるnpmライブラリnanoidの使い方
- article
express で IP を取得する際などに利用する req.connection 非推奨(deprecated)の対処
- article
【解決方法】docker-composeでコンテナを立ち上げた際に発生するConflictエラーの対処