操作符extends的作用是什么

简介: 操作符extends的作用是什么

在 TypeScript 中,extends 是一个关键字,用于表示类型的继承或约束关系。它主要用于以下两个方面:

  1. 类型继承:extends 关键字可以用于类、接口和类型别名的定义,表示一个类型继承自另一个类型。通过继承,子类型可以获得父类型的属性和方法,并且可以进行覆写或扩展。
class Animal {
    name: string;
    constructor(name: string) {
        this.name = name;
    }
    eat() {
        console.log(`${this.name} is eating.`);
    }
}
class Dog extends Animal {
    bark() {
        console.log(`${this.name} is barking.`);
    }
}
const dog = new Dog("Bobby");
dog.eat(); // 继承自父类 Animal 的方法
dog.bark(); // 子类独有的方法
  • 在上述示例中,Dog 类继承自 Animal 类,通过 extends 关键字建立了类之间的继承关系,使得 Dog 类拥有 Animal 类的属性和方法。
  • 泛型约束:extends 关键字也可以用于泛型参数的约束,限制泛型类型必须满足指定的条件。通过使用 extends 关键字进行泛型约束,可以确保传入的类型满足特定要求,以便进行进一步的操作。
interface Lengthwise {
    length: number;
}
function loggingIdentity<T extends Lengthwise>(arg: T): T {
    console.log(`Length of ${arg}: ${arg.length}`);
    return arg;
}
loggingIdentity([1, 2, 3]); // 数组长度满足泛型约束
loggingIdentity("Hello"); // 字符串的 length 属性满足泛型约束
loggingIdentity(123); // 错误,数字类型没有 length 属性
  1. 在上述示例中,T extends Lengthwise 表示泛型参数 T 必须是满足 Lengthwise 接口的类型,即具有名为 length 的数值属性。通过使用 extends 关键字进行泛型约束,我们可以确保传入的类型满足特定的条件,从而在函数内部进行相应的操作。

总结起来,extends 关键字在 TypeScript 中用于表示类型的继承关系和约束关系,它允许子类型继承父类型的特性,并对泛型类型进行约束限制。

相关文章
|
23天前
|
算法 安全 编译器
【C++ 关键字 override】C++ 重写关键字override(强制编译器检查该函数是否覆盖已存在的虚函数)
【C++ 关键字 override】C++ 重写关键字override(强制编译器检查该函数是否覆盖已存在的虚函数)
33 0
|
23天前
|
JavaScript
操作符extends的作用是什么?
操作符extends的作用是什么?
|
23天前
|
安全 JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
11 0
|
23天前
|
JavaScript
操作符extends的作用是什么?
操作符extends的作用是什么?
|
23天前
|
JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
|
23天前
|
JavaScript 安全
操作符keyof的作用是什么
操作符keyof的作用是什么
42 3
|
7月前
|
Java 编译器
【继承顺序和方式,子类构造方法,protected 关键字,final 关键字】
【继承顺序和方式,子类构造方法,protected 关键字,final 关键字】
30 0
|
7月前
|
Java
【继承之extends关键字和super关键字】
【继承之extends关键字和super关键字】
43 0
|
9月前
|
Java
final 类,常量,方法的解释
final 类,常量,方法的解释
58 1
|
Java 编译器
重写,重写规则 Super 关键字的使用,重写与重载之间的区别 , @override有什么用,以及加不加@override有什么区别
重写,重写规则 Super 关键字的使用,重写与重载之间的区别 , @override有什么用,以及加不加@override有什么区别
203 0

热门文章

最新文章