[TypeScript]Object(オブジェクト)のプロパティの存在チェックをするには?

TypeScript

どうも、ちょげ(@chogetarou)です。

Object(オブジェクト)にプロパティが存在するかどうか確認する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Object(オブジェクト)のプロパティの存在チェックをする方法は、3つあります。

hasOwnProperty()

ひとつめは、hasOwnPropertyを使う方法です。

まず、ObjectからhasOwnProperty()を呼び出します。

そして、hasOwnProperty()の引数に、プロパティを指定します。

//obj=オブジェクト、prop=プロパティ
obj.hasOwnProperty(prop)

上記のhasOwnProperty()は、呼び出したObject(オブジェクト)にプロパティが存在すれば「true」、存在しなければ「false」を返します。

使用例

type Numbers = {
    [key: string]: number
}

const nums: Numbers = { 
    "one": 1, 
    "two": 2,
    "three": 3,
    "four": 4,
    "five": 5,
}

console.log(nums.hasOwnProperty("six"))
console.log(nums.hasOwnProperty("one"))
console.log(nums.hasOwnProperty("five"))
出力:
[LOG]: false 
[LOG]: true 
[LOG]: true 

in

ふたつめは、「in」演算子を使う方法です。

具体的には、「in」演算子の左辺にプロパティ、右辺にObjectを指定します。

//obj=オブジェクト、prop=プロパティ
prop in obj

上記の「in」演算子は、右辺のObjectに左辺のプロパティが存在すれば「true」、存在しなければ「false」を返します。

使用例

type Numbers = {
    [key: string]: number
}

const nums: Numbers = { 
    "one": 1, 
    "two": 2,
    "three": 3,
    "four": 4,
    "five": 5,
}

console.log("four" in nums)
console.log("one" in nums)
console.log("nine" in nums)
出力:
[LOG]: true 
[LOG]: true 
[LOG]: false 

undefined

みっつめは、undefinedを使う方法です。

まず、Objectの存在チェックするプロパティにアクセスします。

そして、アクセスした結果が「undefined」かどうか「===」もしくは「!==」で調べます。

//obj=オブジェクト、prop=プロパティ
obj.prop === undefined //存在しない場合にtrue, 存在する場合にfalse
obj.prop !== undefined //存在する場合にtrue, 存在しない場合にfalse

Objectのプロパティにアクセスした結果が「undefined」ならば、プロパティは存在しません。

Objectのプロパティにアクセスした結果が「undefined」でなければ、プロパティは存在します。

使用例

type Numbers = {
    [key: string]: number
}

const nums: Numbers = { 
    "one": 1, 
    "two": 2,
    "three": 3,
    "four": 4,
    "five": 5,
}

console.log(nums.five === undefined)
console.log(nums.nine === undefined)
console.log(nums.three === undefined)
出力:
[LOG]: false 
[LOG]: true 
[LOG]: false 

まとめ

Object(オブジェクト)のプロパティの存在チェックをする方法は、次の3つです。

  • hasOwnProperty()を使う方法
    obj.hasOwnProperty(prop)
  • 「in」演算子を使う方法
    prop in obj
  • undefined()を使う方法
    obj.prop === undefined
    obj.prop !== undefined

コメント

タイトルとURLをコピーしました