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

TypeScript报错:类型'Element'不可分配给类型'never',求助解决

解决TypeScript报错:Argument of type 'Element' is not assignable to parameter of type 'never'

问题根源

你定义的board数组未显式指定类型,TypeScript会根据空数组初始值推断其类型为never[](表示该数组永远不能包含任何元素)。当你尝试向其中push React元素(JSX.Element类型)时,类型不匹配触发了报错。

解决方案

1. 显式标注数组类型

直接给board指定类型为JSX.Element[],明确告知TypeScript这个数组用于存放React元素:

export default function Chessboard(){
    let board: JSX.Element[] = []; // 添加类型标注
    for(let i = 0 ; i < horizontalAxis.length; i++)
    {
        for(let j = verticalAxis.length-1 ; j >= 0 ; j--)
        {
            const num =  i + j + 2 ;
            board.push(<Tile number={num} />);
        }
    }
    return <div id="chessboard">{board}</div>
}

2. 简化类型推断写法

也可以在初始化时通过类型断言指定数组类型:

let board = [] as JSX.Element[];

额外提示

你的Tile组件命名为小写tile,React要求组件名称必须首字母大写(否则会被识别为普通HTML标签),建议修改为:

export default function Tile({number}: props){
    if(number % 2 === 0)
    {
        return <div className="tile black-tile"></div>
    }
    else
    {
        return <div className="tile white-tile"></div>
    }
}

避免后续出现渲染异常问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:33:17