遍历对象的属性时,如何检查键是否可选?
When looping through an object's properties, how do I check if a key is optional?
考虑以下几点:
interface TestObject { param: string, foo?: string }
const object: TestObject = {
param: "hello"
foo?: "bar"
}
上面有一个可选参数但是,假设我们没有接口,对象是 unknown。
如何通过遍历给定对象的 属性 来确定键是否可选? (见下文)
const takeAnObject = (object: unknown) => {
Object.keys(object).forEach((key: string) => {
if(key === OPTIONAL){
console.log(`${key} is an optional parameter`)
} else {
console.log(`${key} is a required parameter`)
}
}
}
你不能。在运行时,没有 type 信息。
您可以做的是为您的对象创建某种模式,然后根据该模式验证它们。最受欢迎的软件包之一是 ajv
考虑以下几点:
interface TestObject { param: string, foo?: string }
const object: TestObject = {
param: "hello"
foo?: "bar"
}
上面有一个可选参数但是,假设我们没有接口,对象是 unknown。
如何通过遍历给定对象的 属性 来确定键是否可选? (见下文)
const takeAnObject = (object: unknown) => {
Object.keys(object).forEach((key: string) => {
if(key === OPTIONAL){
console.log(`${key} is an optional parameter`)
} else {
console.log(`${key} is a required parameter`)
}
}
}
你不能。在运行时,没有 type 信息。 您可以做的是为您的对象创建某种模式,然后根据该模式验证它们。最受欢迎的软件包之一是 ajv