如何在Typescript中的对象映射中资产两个属性关系

时间:2018-01-16 03:14:16

标签: typescript

我有一些与验证器配对的对象:

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}

我希望此类型定义属于ab的参数类型相同的资产。像这样(除了它不起作用):

interface All2 {
    [key: string]: {
        <T>(): {
            a: T,
            b: (c: T) => boolean
        }
    }
}

const all2: All2 = {x: () => x, y: () => y, z: () => z}

我有什么想法可以在这里创建更强大的类型吗?

0 个答案:

没有答案