1

所以我对松果有这个小功能。在我确实输入我的对象的 ID 来过滤它的地方(结果是 type Task | undefined)我给出了一个 Key ,它当然应该是一个keyof Task,现在我有点挣扎value。我试图找出最适合我的用例的东西,它必须是值左右,但我目前没有找到正确的实用程序类型(如果它甚至应该是一个)。

changeValue(id: number, key: keyof Task , value: Partial<Task>) {
    const task = this.one(id);
    
    if (task) {
        task[key] = value;
    }
}

另外,我在这里还有第二个问题,task[key]说它的类型never有人能解释为什么它永远不会是类型吗?

4

1 回答 1

0

您可以通过使用带有适当控制流的 TypeScript 推理来使您的代码正常工作:

changeValue(id: number, key: keyof Task , value: Partial<Task>) {
    const task = this.one(id);
    
    if(task === undefined)
        return; // Handle the undefined case
    
    const propToAssign = value[key];

    if(propToAssign === undefined)
        return; // Handle the undefined case

    task[key] = propToAssign;
}
于 2022-02-09T19:47:24.183 回答