gpt4 book ai didi

Typescript - 对象中的动态键名称?使用模板文字?

转载 作者:行者123 更新时间:2023-12-05 06:06:47 24 4
gpt4 key购买 nike

类似下面的可能吗?

type test = <T extends string>(key: T, object: { [`${T}`]: number }) => void
^^^^^^^^

我知道我们可以使用该语法设置类型字面量值,但我试过了,似乎无法使用键来完成。

但是,从逻辑上讲,我觉得使用 as 的映射键应该是可能的...

有人对此有任何见解吗?

最佳答案

您可以使用 Record<T, number> (我推荐)或经典用法:

type test = <T extends string>(key: T, object: { [K in T]: number }) => void

类型对象与 JS 对象的工作方式不同。

编辑

对于更多字段,使用 &(合并)运算符:

type test = <T extends string>(key: T, object: { [K in T]: number } & {foo: "bar"}) => void

或(更好)

type test = <T extends string>(key: T, object: Record<T, number> & {foo: "bar"}) => void

关于Typescript - 对象中的动态键名称?使用模板文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65658209/

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