泛型只影响
使用
的部分, 不会影响声明
的部分
不管三七二十一先来看代码即可:
interface TestInterface<T> {
age: T;
}
// age:number
let t1: TestInterface<number>;
// age:string
let t2: TestInterface<string>;
t1 = t2;
t2 = t1;
在如上代码当中定义了两个 TestInterface
接口类型的变量,但是在使用定义的 t1
、t2
报错了,这就是如上所说的只影响使用的部分,然后去了接口当中的 age
限定条件就是只剩下接口的声明了,那么就不会报错了,因为我如上说了不会影响声明部分。
interface TestInterface<T> {
}
let t1: TestInterface<number>;
let t2: TestInterface<string>;
t1 = t2;
t2 = t1;