如何使用部分预定义的可用密钥创建类型?

时间:2018-05-30 08:30:22

标签: javascript typescript types

如何使用部分预定义的可用密钥创建类型?

我做了类似的事情:

export type MyKeys = 'aa' | 'bb' | 'cc';

export type MyType = {
    [k in MyKeys]: any;
};

并使用它:

let mySpecialObj: MyType = {
    aa: 'key',
    // bb: 'key', <-- without this for example
    cc: 'key'
}

(其他问题: 正如我看到here,这个问题不一样,因为我的意思是带有迭代器键声明的类型:[k in MyKeys]:any; )

2 个答案:

答案 0 :(得分:1)

您可以将所有字段标记为可选字段:

export type MyKeys = 'aa' | 'bb' | 'cc';

export type MyType = {
    [k in MyKeys]?: any;
};

let mySpecialObj: MyType = {
    aa: 'key',
    cc: 'key'
}

答案 1 :(得分:0)

所以我找到了解决方案,

只是添加问号'?'在关键部分的声明结束 像:

export type MyType = {
    [k in MyKeys]?: any;
};