为什么不能在类型定义中使用某些字段和keyof

时间:2017-07-30 09:12:27

标签: typescript

这是我的类型定义代码:

interface Foo {
    a: string;
    b: number;
    c: boolean;
}

type Bar = {
    [prop in keyof Foo]?: number | string;
};

type Bar2 = {
    id: string;
    [prop in keyof Foo]?: number | string;
};

Bar的定义没问题,但Bar2有问题,有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我不知道为什么[K in keys]语法不能与经典的键/类型定义混合,但你可以这样做:

type Bar2 = Bar & {
    id: string
}