【解決方法】TypeScript発生したTS2564 エラーの対処

TypeScript
【解決方法】TypeScript発生したTS2564 エラーの対処
Memo
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

TypeScript で開発している際にTS2564エラーが発生したためその解決手順をまとめています。

環境

  • TypeScript 4.7.4

発生したエラー

typescript
error TS2564: Property 'prop' has no initializer and is not definitely assigned in the constructor.

原因

原因はプロパティが初期化されていないことにより発生するエラーとなります。

typescript
class 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 エラーの対処について紹介させていただきました。

これからも皆様の開発に役立つ情報を提供していきたいと考えています。
今後ともよろしくお願いいたします。