T-CREATOR

<div />

TypeScriptでunknown型を使い安全に外部データを扱う設計

2025年12月20日
TypeScriptでunknown型を使い安全に外部データを扱う設計

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

著書

とあるクリエイター

フロントエンドエンジニア Next.js / React / TypeScript / Node.js / Docker / AI Coding

;