对象类型的Typescript并集

时间:2018-10-11 10:27:27

标签: typescript

有没有办法实现类似的目标?

由于在if语句和someFunction调用之间使用了键和值,因此无法在if语句中调用someFunction。

type someObj = {
    a: string,
    b: number
};

type someObjType = { [K in keyof someObj]: { prop: K, value: someObj[K] } }[keyof someObj];

function someFunction(args: someObjType) {

};

function someOtherFunction() {
    let key: someObjType['prop'],
        value: someObjType['value'];
    if (Math.random() > .5) {
        key = 'a',
            value = 'some String'
    } else {
        key = 'b';
        value = 200
    };

    // Do Something using key and value.

    someFunction({ prop: key, value }) // throws an error.
};

1 个答案:

答案 0 :(得分:1)

您能否继续在someObjType语句中创建类型为if的对象,然后使用obj.propobj.value而不是key和{ {1}}?

value