1️⃣ 类型兼容性
2️⃣ 基本类型:TS 中要求完全匹配
let a: number = 10;
2️⃣ 对象类型:鸭子变型法
鸭子变型法:像鸭子一样走路、游泳和嘎嘎叫的鸟就是鸭子。赋值的类型只要满足这些条件就是兼容的。
interface a {name: stringage: number}let obj1 = {name: 'chen',age: 25,job: 'javaScript'}let obj2 = {name: 'chen',job: 'javaScript'}let b: a = obj1; // b 约束为类型 a,赋值为 obj1,因为 obj1 中满足了 a 的 name 和 age 所以是可以成功的,可以多但不可以少。console.log(b);// 类型 "{ name: string; job: string; }" 中缺少属性 "age",但类型 "a" 中需要该属性。ts(2741)let c: a = obj2 // c 约束为类型 a,赋值为 obj2,因为 obj2 中不满足 0a 的 name 和 age 所以是不成功的,可以多但不可以少。console.log(c);
1️⃣ 函数类型
参数:传递给目标函数的参数可以少,但不可以多。
返回值:要求返回必须返回,不要求返回可以随意。
