gpt4 book ai didi

javascript - 如何在 Typescript 中键入对象键?

转载 作者:行者123 更新时间:2023-12-05 01:31:34 25 4
gpt4 key购买 nike

我有一个简单的函数,它接受一个对象作为参数。为了只接收有效数据,我需要这样输入对象的键:

type DataType = "about" | "favorites" | "username";
type UpdatedData = { [key in DataType]: any };

function onSave (updatedData: UpdatedData){
//do stuff
}

// in a component
const onClickSave = () => onSave({ "about": text });

typescript 抛出以下错误:

Argument of type '{ about: text; }' is not assignable to parameter of type 'UpdatedData'.Type '{ about: text; }' is missing the following properties from type 'UpdatedData': favorites, username

如何解决这个问题?当然,我可以写 [key: string] 而不是 [key in DataType] 但那样打字就没用了。

最佳答案

由于 UpdatedData 的属性可以是可选的,只需添加一个 ? 使其成为可选的。

编辑:正如@Jérémie B 提到的那样,空的 {} 仍然允许使用。

type DataType = "about" | "favorites" | "username";
type UpdatedData = { [key in DataType]?: any };
function onSave (updatedData: UpdatedData){
}
const text = "hello"

const onClickSave = () => onSave({ "about": text });

关于javascript - 如何在 Typescript 中键入对象键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66078725/

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