我的类型为A
,类型为B
type A = {
kind: "A",
value: string,
value2: string,
value3: string,
};
type B = { kind: "B" } & A ;
我要输入的B
具有A
类型的所有属性,但具有不同的kind
值
但是当我写这篇文章
const temp: B = {
kind: "B",
value: "X",
value2: "X2",
value3: "X3",
};
我收到此错误
TS2322类型
string
无法分配给类型never
答案 0 :(得分:2)
答案 1 :(得分:2)
这是因为kind不能同时属于“ A”和“ B”类型。
解决方法:
1。泛型:
type WithKind<T extends string> = {
kind: T,
value: string,
value2: string,
value3: string,
}
type A = WithKind<"A">;
type B = WithKind<"B">;
2。忽略:
type B = Omit<A, "kind"> & { kind: "B" } ;