gpt4 book ai didi

Typescript - 类型 'string | number' 不可分配给类型 'never'

转载 作者:行者123 更新时间:2023-12-02 18:07:01 25 4
gpt4 key购买 nike

我似乎无法弄清楚如何解决它。它抛出以下错误:Type 'string | number' 不可分配给类型 'never'

这是我的代码。非常感谢任何想法或提示。


interface User {
name: string
age: number
}

const user: User = {
name: "someone",
age: 20
}

const getValue = (key: keyof User) => {
return user[key]
}

const setValue = (key: keyof User, value: string | number) => {

let _user: User = Object.assign({}, user);
return _user[key] = value; <---- error is thrown here
}

最佳答案

const setValue = <K extends keyof User>(key: K, value: User[K]) => {
let _user: User = Object.assign({}, user);
return _user[key] = value;
}

然后你就可以得到完美的类型检查

setValue('name', 18); // ❌
setValue('name', 'yes'); // ✅
setValue('age', '18'); // ❌
setValue('age', 18); // ✅
setValue('otherKey', 'something'); // ❌

关于Typescript - 类型 'string | number' 不可分配给类型 'never',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73032080/

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