我有一些与验证器配对的对象:
const x = { a: "123", b: (c: string) => true }
const y = { a: 1, b: (c: number) => true }
const z = {a: [1,2,3], b: (c: Array<number>) => true}
我把它们都放在一个对象中,但类型非常弱。
interface All {
[key: string]: {
a: any,
b: (c: any) => boolean
}
}
const all: All = {x, y, z}
我希望此类型定义属于a
与b
的参数类型相同的资产。像这样(除了它不起作用):
interface All2 {
[key: string]: {
<T>(): {
a: T,
b: (c: T) => boolean
}
}
}
const all2: All2 = {x: () => x, y: () => y, z: () => z}
我有什么想法可以在这里创建更强大的类型吗?