【发布时间】:2021-12-12 07:28:45
【问题描述】:
我想使用一个数组来遍历接口属性,但是它在 forEach 函数上抛出了一个 ts 编译错误:
interface A {
foo: string
bar: string
baz: string
}
function fn(obj: A) {
;["foo", "bar"].forEach( (prop: keyof A) => {
obj[prop] // do stuff
})
}
错误:
'(prop: keyof A) => void' 类型的参数不能分配给'(value: string, index: number, array: string[]) => void' 类型的参数。 参数“prop”和“value”的类型不兼容。 类型“字符串”不可分配给类型“keyof A”
这样的东西会起作用,但感觉是多余的:
function fn(obj: A) {
const ar: (keyof A)[] = ["foo", "bar"]
ar.forEach( (prop: keyof A) => {
obj[prop] // do stuff
})
}
【问题讨论】:
标签: typescript