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

TypeScript中如何声明带类型的变量接收返回record的函数的返回值?

错误原因

你的写法把number识别成了解构的重命名目标,而非类型标注:TS 中解构语法里x: number的语义是「把对象的x属性赋值给名为number的新变量」,你同时给x和y都指定了重命名为number,自然会触发重复声明块级变量的报错。

正确实现

方案1:利用自动类型推断

只要你用到的item函数的类型定义是准确的,不需要额外手动标注类型,TS 会自动推断出返回值里x、y的类型:

const { x, y } = await data.item(id);

此时x、y都会自动获得number类型的提示。

方案2:手动标注类型

如果需要显式标注类型,要把类型定义写在整个解构表达式的后方:

const { x, y }: { x: number; y: number } = await data.item(id);

如果你还要用到返回值的元组部分,也可以对应标注元组的类型:

// 同时取元组值和对象属性
const [val1, val2, x, y]: [number, number, number, number] = await data.item(id);
// 只取元组值
const [val1, val2]: [number, number] = await data.item(id);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:36:03