TypeScript中的instanceof
关键字用于检查一个对象是否是某个类的实例,而instancetype
关键字则用于定义一个类的类型,表示该类是其子类的实例类型。
1. instanceof
关键字
instanceof
关键字用于检查一个对象是否是某个类的实例,它的语法如下:
object instanceof ClassName
object
是要检查的对象,ClassName
是要检查的类名,如果object
是ClassName
的实例,那么表达式的结果为true
,否则为false
。
class Animal { move() { console.log("Animal is moving"); } } class Dog extends Animal { bark() { console.log("Dog is barking"); } } const dog = new Dog(); dog instanceof Animal; // 输出:true,因为Dog是Animal的子类
2. instancetype
关键字
instancetype
关键字用于定义一个类的类型,表示该类是其子类的实例类型,它的语法如下:
class ClassName extends BaseClass { instancetype ThisIsInstanceType; }
ClassName
是要定义类型的类名,BaseClass
是基类,这样,ClassName
的实例类型就是其子类的实例类型。
class Animal { move() { console.log("Animal is moving"); } } class Dog extends Animal { bark() { console.log("Dog is barking"); } } class Cat extends Animal { meow() { console.log("Cat is meowing"); } } class AnimalHandler<T extends Animal> { handle(animal: T): void { animal.move(); // 所有Animal的子类都有move方法,所以可以调用它 } } const dogHandler = new AnimalHandler<Dog>(); // DogHandler的类型参数为Dog,即Dog的实例类型 const catHandler = new AnimalHandler<Cat>(); // CatHandler的类型参数为Cat,即Cat的实例类型
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。