【发布时间】:2017-02-06 23:23:40
【问题描述】:
在打字稿中,我有一个 X 类型的接口。我有一个方法,它需要一个具有任意数量属性的对象,但每个属性都必须是 X 类型。例如,这两个都可以作为参数传递:
interface IJays {
jim: X;
jone: X;
jan: X;
}
和
interface IBees {
bill: X;
bob: X;
betty: X;
}
但这不是作为参数传递的有效类型:
interface ISees {
claude: X;
carol: boolean;
clem: number;
}
在这种情况下,属性的名称也很重要(它们在处理中使用)。
如果我可以使用不同的数据结构,那就太好了,但这是来自某些 API 的结构。我也没有所有接口的有限列表。随着项目的发展,将会有许多遵循这种模式的接口。
目前,我将此属性键入为“any”,但我真的希望将其作为特定类型以防止将来出现错误(这是将来容易出错的那种东西)。
有没有办法将其指定为打字稿中的类型?本质上,一个任意对象,该对象的每个属性都属于特定类型?也许使用新的Mapped Types 功能?
【问题讨论】:
-
如果知道所有值都是同一类型而不知道该类型是什么或您将拥有什么属性,您会获得什么样的信息?
标签: typescript