小编Sha*_*ger的帖子

如何在 TypeScript 中动态更新类型化对象上的键值对

我正在尝试创建一个函数,它接受一个键和一个值,并更新类型化对象上相应的键值对。这是我所追求的一个基本示例。

使用以下代码链接到代码沙箱

type x = {
    prop : number,
    other : string
}

let dataToUpdate : x = {
    prop: 1,
    other: "string"
}

function updateKey(key : string, value : number | string) {
    dataToUpdate[key] = value;
}
Run Code Online (Sandbox Code Playgroud)

我通过上述实现收到此错误。

元素隐式具有'any'类型,因为 type 的表达式'string'不能用于索引 type 'x''string'在类型上找不到带有类型参数的索引签名'x'。(7053)

更新我被介绍了XY Problem 的想法。下面是我所追求的实际实现。我正在尝试在 React 中创建一个上下文,该上下文返回一个函数,该函数允许您仅更新存储在上下文中的对象内的特定属性

export function StoreProvider(props: any) {
    const [storeData, setStoreData] = useState<StoreData>(initProviderData);

    function setStoreKeyValue(keyToUpdate: keyof StoreData[], valueToSet: boolean | string | number | …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

6
推荐指数
1
解决办法
3773
查看次数

标签 统计

reactjs ×1

typescript ×1