【发布时间】:2019-11-20 21:27:04
【问题描述】:
我正在尝试编写一个通用接口,它接受两种类型,Entry, T 返回的内容和包含此内容的key, K。
我不确定这是否可以使用打字稿完成。
有人知道吗?谢谢!
// this is a bad way of doing it
export interface Reconfigure<T> {
title: string
keyOne?: Entry<T>[]
keyTwo?: Entry<T>[]
keyThree?: Entry<T>[]
keyFour?: Entry<T>[]
}
// this is close to what I'd want to do, but doesn't work
export interface Reconfigure<T, K> {
title: string
[K]: Entry<T>[]
}
【问题讨论】:
-
你可以用类型别名做你想做的事,例如
type Reconfigure<T, K> = { [key in K]: Entry<T> }但不确定您是否可以让它像界面一样工作。 -
顺便说一句,当您在问题中添加短语“不起作用”时,您应该始终显示不起作用的结果(即它导致的错误/警告)。
-
@spender 我不确定。 OP 希望最终,K 将是一个特定的属性(例如,对于 K = 'foo',接口将具有 prop
foo: Entry<T>[]}..
标签: typescript