返回
TS关键字extends用法总结,干货满满不容错过!
前端
2023-09-30 20:03:15
TSextends:从基础到高级
一、接口继承
在TS中,接口可以继承自其他接口,这是一种常见的继承方式。使用extends关键字可以将一个接口的属性和方法继承到另一个接口中。
interface Animal {
name: string;
eat(): void;
}
interface Dog extends Animal {
bark(): void;
}
const dog: Dog = {
name: '旺财',
eat() {
console.log('狗狗在吃饭!');
},
bark() {
console.log('狗狗在汪汪叫!');
}
};
dog.eat();
dog.bark();
二、条件判断
在TS中,extends关键字还可用于条件判断。这种用法非常独特,在其他语言中很少见。它允许我们在类型系统中使用条件判断,从而实现更灵活的类型推断。
type IsEqual<T, U> =
T extends U ? true : false;
const result1: IsEqual<string, number> = false;
const result2: IsEqual<string, string> = true;
上面的代码中,我们定义了一个名为IsEqual的类型,它可以判断两个类型是否相等。如果两个类型相等,则返回true,否则返回false。
三、高级类型推断
在TS中,extends关键字还可以用于高级类型推断。例如,我们可以使用extends关键字来推断数组元素的类型。
function getArray<T>(items: T[]): T[] {
return items;
}
const numbers = getArray([1, 2, 3]);
const strings = getArray(['a', 'b', 'c']);
numbers.forEach((num) => {
console.log(num);
});
strings.forEach((str) => {
console.log(str);
});
上面的代码中,我们定义了一个名为getArray的函数,它可以接受一个数组作为参数,并返回一个类型相同的数组。
结语
TS关键字extends用法广泛,涵盖了接口继承、条件判断和高级类型推断等多个方面。通过熟练掌握extends关键字,我们可以更灵活地使用TS类型系统,从而编写出更加健壮和可维护的代码。