【解決方法】TypeScript発生したTS2564 エラーの対処
TypeScript
Memo
TypeScript で開発している際にTS2564エラーが発生したためその解決手順をまとめています。
環境
- TypeScript 4.7.4
発生したエラー
typescripterror TS2564: Property 'prop' has no initializer and is not definitely assigned in the constructor.
原因
原因はプロパティが初期化されていないことにより発生するエラーとなります。
typescriptclass Hoge {
prop: string;
}
解決方法
いずれかの形で解決を実施します。
- コンストラクタで初期化する
initializer
で初期化する- undefinedとのユニオン型で型注釈する
コンストラクタで初期化する
コンストラクタで初期化する場合は下記のように対応します。
class Hoge {
prop: number;
constructor() {
this.prop = 1;
}
}
initializerで初期化する
initializerで初期化する場合は下記のように対応します。
class Hoge {
prop: number = 1;
}
undefinedとのユニオン型で型注釈する
オプショナルで対応場合は下記のように対応します。
class Hoge {
prop?: number;
}
ユニオン型を定義する場合は下記のように対応します。
class Foo {
prop: number | undefined;
}
暫定で対応
暫定で対応したい場合はtsconfigへ下記のるルールを追加すると暫定としてエラーは解消します。
tsconfig.json"strictPropertyInitialization": false
終わりに
最後までご覧いただきありがとうございます。
この記事では【解決方法】TypeScript発生したTS2564 エラーの対処について紹介させていただきました。
これからも皆様の開発に役立つ情報を提供していきたいと考えています。
今後ともよろしくお願いいたします。