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

TypeScript自动补全出现car.car,需改为car.id形式,求排查方案

问题原因及解决方案

你的核心问题是解构时的类型标注错误,导致TypeScript把car识别成了包含car属性的对象,而非直接的ICarDetails类型。

错误分析

你写的类型{ car: ICarDetails; allStations: { id: string; location: string; }[] }[]表示:这是一个对象数组,数组里的每个元素都是带有car和allStations属性的对象。但你用的是数组解构[car, allStations],相当于取数组的第一个元素作为car,这个元素的类型是那个带car属性的对象,所以才会出现car.car.id的补全提示。

修正代码

你需要把类型改成元组类型(固定长度、固定位置类型的数组),这样解构出来的car就是直接的ICarDetails类型:

{([car, allStations]: [ICarDetails, { id: string; location: string; }[]]) => (
  // 现在可以直接访问 car.id 了
)}

关键说明

元组类型用[类型1, 类型2]定义,明确指定数组第一个元素是ICarDetails,第二个是站点数组,TypeScript就能正确推断car的类型,自动补全它的原生属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:15:57