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

TypeScript报错:Property 'name' does not exist on type 'never' 求解

解决TypeScript中useState数组类型报错问题

这个报错的核心原因是:你初始化useState时传了空数组[],TypeScript无法自动推断数组内元素的类型,默认把airports判定为never[](永远为空的数组类型),所以访问airport.name时会提示属性不存在。

解决步骤如下:

  1. 定义机场数据的类型接口
    根据Flight Radar API返回的机场数据结构,先声明一个接口来约束数据类型,把你需要用到的字段都列出来:

    interface Airport {
      name: string;
      // 可按需添加API返回的其他字段,比如:
      icao: string;
      iata: string;
      country: string;
    }
    
  2. 给useState指定明确类型
    初始化状态时,明确告诉TypeScript这是Airport类型的数组:

    const [airports, setAirports] = useState<Airport[]>([]);
    
  3. 正常使用map方法
    现在TypeScript已经明确airports里的元素是Airport类型,访问airport.name就不会再报错:

    airports.map(airport => console.log(airport.name));
    

如果暂时不确定API返回的完整结构,也可以用any[]临时绕过类型检查(但不推荐长期使用,会失去TypeScript的类型校验优势):

const [airports, setAirports] = useState<any[]>([]);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:45:19