TypeScript オブジェクトに指定したキーがあるかをチェックする
主に unknown な値をオブジェクト型に狭めて、その後に特定のプロパティにアクセスしたい場合の話。
const hasProp = <K extends PropertyKey>(data: object, prop: K): data is Record<K, unknown> {
return prop in data;
}
使い方
const myFunc = (data: unknown) => {
if(typeof data !== 'object' || data === null) return false
if(!hasProp(data, 'hoge')) return false
data.hoge // hoge は unknown となりエラーにならない
return true
}
最近のコメント