TypeScript Type Compatibility
Introduction
1 | interface A { |
At least same member
1 | interface A { |
1 | interface A { |
1 | interface A { |
在 TypeScript 的类型系统中,逆变(Contravariance)、协变(Covariance)、双变(Bivariance) 和 不变(Invariance) 是描述类型兼容性和子类型关系的重要概念。这些术语来源于类型理论,主要用于处理函数类型、泛型和接口的赋值规则。理解这些概念不仅能帮助我们编写更安全的代码,还能让我们更好地设计类型系统。本文将逐一讲解这四种变型,辅以代码示例,让你轻松掌握它们的含义与应用。
1 | const enum Foo { |
1 | let done: boolean = true |
1 | let count: number = 20 |
1 | let name = "Edward Wang" |
1 | let list1: number[] = [1, 2, 3] |
1 | let x: [string, number] = ["test", 2] |
1 | enum NUMBER { |