我正在获取这样的数据:
{
"_embedded": {
"Customers": [{ "CompanyName": "AWS" }]
}
}
另一个可能看起来像这样:
{
"_embedded": {
"Products": [{ "SKU": "ABC123" }]
}
}
所以它总是相同的结构,除了 _embedded
中的属性名称。
我想要实现的是创建一个像这样的 TypeScript 类型别名:
type MyType<T> = {
_embedded: {
Customers: Array<T>
}
}
我可以使数组中使用的类型通用,但我不知道是否可以使 _embedded
(此处为 Customer
)中的属性名称依赖于字符串值。
答案 0 :(得分:2)
这是我基于 kaya3's comment 的解决方案:
const trackers: ((value: boolean, previous?: boolean | undefined) => any)[] | ((value: string, previous?: string | undefined) => any)[]
可以这样使用:
type MyType<T, K extends string> = {
_embedded: Record<K, T>
}