Open 981377660LMT opened 4 months ago
可辨识联合(Discriminated Unions):
通过一个共同的字段(通常是字符串字面量类型)来区分不同的联合类型成员。
interface Circle { kind: "circle"; radius: number; } interface Triangle { kind: "triangle"; base: number; height: number; } type Shape = Circle | Triangle; function getArea(shape: Shape) { switch (shape.kind) { case "circle": // 在这个块中,shape 的类型被缩小为 Circle return Math.PI * shape.radius ** 2; case "triangle": // 在这个块中,shape 的类型被缩小为 Triangle return (shape.base * shape.height) / 2; } }
可辨识联合(Discriminated Unions):
通过一个共同的字段(通常是字符串字面量类型)来区分不同的联合类型成员。