Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅使用部分预定义的可用键创建类型?_Javascript_Typescript_Types - Fatal编程技术网

Javascript 如何仅使用部分预定义的可用键创建类型?

Javascript 如何仅使用部分预定义的可用键创建类型?,javascript,typescript,types,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' } 让mySpecialObj

如何仅使用预定义可用键的一部分创建类型

我会这样做:

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'
}
让mySpecialObj:MyType={
aa:‘钥匙’,

//bb:'key',您可以将所有字段标记为可选字段:

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

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

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

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

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

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

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

所以我找到了解决办法

只需在关键部分的声明末尾添加问号“?” 比如:


所以我找到了解决办法

只需在关键部分的声明末尾添加问号“?” 比如:


它的可能副本与您发布的链接不完全相同,因为它隐藏在迭代键“[k in MyKeys]:any;”中;我不认为“嵌入”循环中的解决方案将使其成为一个完全不同的解决方案。无论如何,这只是一个重复的建议,不是我现在要判断的:)这不是对问题的判断,更多的是对搜索引擎和类似的东西的判断。看我之前的评论编辑,你不需要在编辑中证明自己,你的问题不会被删除,它有一个我知道在特定领域添加问号的可能性,尽管这并不能帮助我理解这一点。所以这个问题是针对像我这样仍然有问题的人提出的,当它不是针对特定领域时,它可能的重复与你发布的链接不完全相同,bec因为它隐藏在迭代键“[k in MyKeys]:any;”中,我不认为“嵌入”循环中的解决方案将使其成为一个完全不同的解决方案。无论如何,这只是一个重复的建议,不是我现在要判断的:)这不是对问题的判断,更多的是对搜索引擎和类似的东西的判断。看我之前的评论编辑,你不需要在编辑中证明自己,你的问题不会被删除,它有一个我知道为特定领域添加问号的可能性,尽管这并不能帮助我理解这一点。因此,这个问题是针对像我这样的人提出的,他们仍然对此有疑问,但不是针对特定领域。非常感谢您提供的最快帮助。也刚刚找到。非常感谢您r您最快的帮助。也刚刚找到。