You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript扩展对象时出现‘type is not assignable’错误求助

问题分析与解决

你的错误出在对象扩展的语法使用上:

  • 你写的{...data, values}会把传入的values作为一个名为values的属性添加到合并后的对象中,导致最终对象结构变成{id: number, name: string, values: Employee},但Employee接口里并没有values这个属性,所以TypeScript抛出类型不匹配的错误。

正确的写法是把values也用扩展运算符展开,这样是将values中的属性逐个合并到原对象里,而不是添加一个新属性:

interface Employee  {
  id: number;
  name: string;
};

let data: Employee ={
    id: 1,
    name: 'name'
}

const fun = (values: Employee) => {
  data = {...data, ...values}
}

这样合并后的对象只会包含Employee接口定义的id和name属性,完全符合类型约束,就不会再报错了。

内容的提问来源于stack exchange,提问作者Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:30:55