【发布时间】:2021-01-09 06:17:02
【问题描述】:
我有一个接受负载的函数,该负载的一部分是data 属性,它可以是对象数组或具有特定属性的对象。根据负载上是否提供了某个键,在此示例中propA,我想返回该键的值,或默认值 150。我为数据属性创建了一个联合类型,见此处FunctionInterface 示例。
问题是这会导致 TS 错误...Property 'propA' does not exist on type 'Record<string, unknown>[]'.
如何更新我的函数接口或函数体以使用这样的东西?
interface FunctionInterface {
data: Record<string, unknown>[] | { propA: number, propB?: string[] }
}
function myFunction(payload: FunctionInterface) {
return payload.data.propA || 150;
}
const result1 = myFunction({ data: { propA: 4 } }); // expect 4
const result2 = myFunction({ data: [{ 'a': 1, 'b': 2 }, { 'a': 3, 'b': 4 }] }); // expect 150
【问题讨论】:
标签: typescript