提问人:Sabo Boz 提问时间:11/12/2023 最后编辑:Sabo Boz 更新时间:11/12/2023 访问量:28
可分配给类型“never”的类型
types that are assignable to type 'never'
问:
在下面的示例中,有没有人知道如何编写变量以使其符合给定的接口(因此我们不必更改接口)?现在我收到一个错误说field
Type '{ accountId: string; active: true; }[]' is not assignable to type 'never'.
interface Fields {
votes: Votes & {
voters: never;
};
}
interface Votes {
self: string;
votes: number;
hasVoted: boolean;
voters: User[];
}
interface User {
accountId: string;
active: boolean;
}
const field: Fields = {
votes: {
self: "self",
votes: 0,
hasVoted: false,
voters: [
{
accountId: "accountId",
active: true,
},
],
},
};
答:
2赞
T.J. Crowder
11/12/2023
#1
没有任何东西可以分配给 never
,因此您必须使用类型断言来强制它。例如:
const fields: Fields = {
votes: {
self: "self",
votes: 0,
hasVoted: false,
voters: [
{
accountId: "accountId",
active: true,
},
] as Fields["votes"]["voters"], // <=============
},
};
评论
而 Omit
实用程序类型尚不可用。所以有人只是将属性设置为使用 1.6 中引入的交叉点类型?never