📅  最后修改于: 2023-12-03 14:55:42.148000             🧑  作者: Mango
在 TypeScript 中,检查对象中是否存在某个属性或密钥通常是一个常见任务。特别是当我们需要从 JSON 数据中提取某些值时,我们需要确定该密钥是否存在。
以下是几种方法可以用于在 TypeScript 中检查 JSON 中是否存在密钥。
in
操作符in
操作符可以用于检查对象中是否存在某个属性或密钥。以下是一个示例:
const obj = { foo: 'bar', baz: 42 };
if ('foo' in obj) {
console.log('obj has a foo property');
}
if ('qux' in obj) {
console.log('obj has a qux property'); /* 这一行不会输出 */
}
使用 in
操作符,我们可以轻松地确定一个对象是否包含我们正在查找的密钥。
hasOwnProperty
方法hasOwnProperty
方法可以用于检查对象中是否存在某个属性或密钥。以下是一个示例:
const obj = { foo: 'bar', baz: 42 };
if (obj.hasOwnProperty('foo')) {
console.log('obj has a foo property');
}
if (obj.hasOwnProperty('qux')) {
console.log('obj has a qux property'); /* 这一行不会输出 */
}
使用 hasOwnProperty
方法,我们可以确定正在检查的密钥是否是对象的自有属性。
Optional Chaining 是 TypeScript 3.7 中引入的新功能,可以在检查对象属性或密钥时更加轻松。例如,将以下代码的 TypeScript 编译器的目标设置为 ES2020 或更高版本:
const obj: { foo?: { bar?: string } } = {};
if (obj.foo?.bar) {
console.log(obj.foo.bar);
} else {
console.log('obj does not have a foo.bar property');
}
在上面的示例中,使用 Optional Chaining 运算符 ?.
,我们可以轻松地检查对象中任何嵌套的属性或密钥是否存在。
在 TypeScript 中,检查 JSON 中是否存在密钥有多种方法。从使用 in
操作符和 hasOwnProperty
方法的传统方法,到使用 TypeScript 3.7 引入的 Optional Chaining 机制,我们可以轻松地检查 JSON 中的密钥或属性是否存在。