【发布时间】:2020-06-05 19:20:43
【问题描述】:
使用 Typescript 3.8.3。
我正在尝试为以下数据设置类型,但我一生都无法弄清楚。
type Info = {
title: string;
description: string;
items: Array<Item<object>>;
}
type Item<T> = {
title: string;
data: T;
}
const info: Info = {
title: 'some title',
description: 'some description',
items: [
{ title: 'title1', data: { param1: 'something', param2: 'something else' } },
{ title: 'title2', data: { param3: 'abc' } },
{ title: 'title3', data: { param1: 'not the same as above, just the key name', param4: 123 } }
]
};
info.items[0].data.param1 // Property 'param1' does not exist on type 'object'
我知道Array<Item<object>> 是错误的,但我不知道如何推断元素数组的联合类型。
我想要实现的目标有可能吗?
【问题讨论】:
-
你想在数据对象上允许什么样的参数?从字面上看是任何键/值对,还是有它们的特定列表?
-
基本上我想要任何参数,这意味着我可以为它们创建类型,但我需要它易于扩展