[TypeScript] Object型のlengthを取得するとTS2339エラーが発生する

カテゴリ: 未分類 | タグ: ,

発生したエラー

TypeScriptで、オブジェクト型の変数に対してlengthを取得しようとすると、TS2339エラーが発生する。

  • コード(react)
type UsersType {
   ...
};

const [user, setUser] = React.useState<UserType>();
if (user.length <= 0) {                     // ここでTS2339エラー
   ...
}
  • 発生したエラー
TS2339: Property 'length' does not exist on type 'UserType'.

理由

エラーメッセージが正しくて、(Arrayとは異なり)オブジェクト型の変数にはlengthのプロパティが存在しない。

対処

本来行いたかったことは、該当のオブジェクトにキーが1つ以上存在するかだったため、以下の形でkeysの配列を取得した上でlengthのプロパティを参照したところエラーが解消した。

if (user.length <= 0) {

↓

if (Object.keys(user).length <= 0) {

Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です