TypeScript 入門 利用例 オブジェクトの型
TypeScriptなしで書いてみる
第一引数で受け取ったオブジェクトのidプロパティが、第二引数の値と同じであれば true、異なれば false を返す関数を書いてみます。
function checkId(item, id){
return item.id === id
}
console.log(checkId({id: 100, value: 200}, 100)) //true
console.log(checkId({id: 100, value: 300}, 200)) //false
第一引数のオブジェクトは id というプロパティを持つことを前提に書かれています。
しかし、間違って id を持たないオブジェクトを渡した場合、この関数の意図とは異なる動きになります。
console.log(checkId({name: 100, value: 100}, 100))
// 値としては 100 で一致するけど、id がないので false になる
できれば第一引数のオブジェクトは id を持つことを強制できたら良いです。
TypeScriptを使う
第一引数のオブジェクトの型をItemとして定義しました。
type Item = {
id: number,
[prop: string]: any
};
function checkId(item: Item, id: number){
return item.id === id
}
console.log(checkId({id: 100, value: 200}, 100)) //true
console.log(checkId({id: 100, value: 300}, 200)) //false
console.log(checkId({name: 100, value: 100}, 100)) // id というプロパティがないのでコンパイルエラー
このようにすることで、誤って id がないオブジェクトを引数にした場合に、Typeエラーになるので事前に検知できます。
最近のコメント