- 当一个类型 Y 可以被赋值给另一个类型 X 时,我们就可以说类型 X 兼容类型 Y;
```
x 兼容 y: x(目标类型) = Y(源类型)
interface X {
a: any,
b: any
}
interface Y {
a: any,
b: any,
c: any
}
let x: X = {a: q, b: 2}
let y: Y = {a: q, b: 2, c: 3}
x = y
// y = x 报错
结论1: - 接口之间相互赋值的时候,成员少的会兼容成员多的
---------------------------------------------------------
interface Point3D {
x: number,
y: number,
z: number
}
interface Point2D {
x: number,
y: number
}
let p3d = (point: Point3D) => {}
let p2d = (point: Point2D) => {}
p3d = p2d
结论2: // p3d兼容p2d,成员个数多的兼容成员个数少的,与之前接口兼容性正好相反;
------------------------------------------------------
老师,在10分28秒的时候说,总结一下,参数多的会兼容参数少的,那与结论一是不是相矛盾了?
展开
作者回复: 不矛盾,结论1是接口之间的兼容性判断,结论2是函数之间的兼容性判断,这是两回事。