gpt4 book ai didi

typescript - 如何在 typescript 中使用部分特定键声明 "Record"类型?

转载 作者:行者123 更新时间:2023-12-04 09:54:27 27 4
gpt4 key购买 nike

现在,我得到了这个:

type T_PlatformKey= 'pf1' | 'pf2' | 'pf3'
type T_PlatformInfo = {
key: T_PlatformKey
name: string
[k: string]: any
}

我想像这样声明一个“记录”类型:
type T_platforms = Record<T_PlatformKey, T_PlatformInfo>

const platforms: T_Platforms = {} // here is the problem

如果我不声明所有属性:
Type '{}' is missing the following properties from type 'Record<T_PlatformKey, T_PlatformInfo>': pf1, pf2, pf3 ts(2739)

我试过这样的其他方式:
interface I_Platforms {
pf1: T_PlatformInfo
pf2: T_PlatformInfo
pf3: T_PlatformInfo
}
const platforms: Partial<I_Platforms> = {} // it works

呃,它有效,但是......?不是很聪明。

(顺便说一句,请原谅我糟糕的英语,谢谢)

最佳答案

您可以使用映射类型(类似于 Record 实现)并指定每个键是可选的:

type T_Platforms = { [Key in T_PlatformKey]?: T_PlatformInfo }

Playground

关于typescript - 如何在 typescript 中使用部分特定键声明 "Record"类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61950470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com