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

如何编写符合给定接口的field变量以解决never类型赋值错误?

解决方案

1. 用类型断言将voters转为never类型

因为Fields里votes.voters的类型是never,你可以通过类型断言把空数组强制转为never,满足类型要求:

const field: Fields = {
    votes: {
        self: "self",
        votes: 0,
        hasVoted: false,
        voters: [] as never,
    },
};

2. 省略voters属性并对整个对象做类型断言

如果不需要voters属性,直接省略后通过类型断言让TypeScript认可对象符合Fields类型:

const field = {
    votes: {
        self: "self",
        votes: 0,
        hasVoted: false,
    },
} as Fields;

报错原因

Fields中votes的类型是Votes & {voters: never},交叉类型会让voters的类型变成User[] & never,最终等价于never。never类型代表永远不会存在的值的类型,普通的User[]数组无法赋值给它,这就是报错的根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:15:55