参考答案:
TypeScript 中的 is
关键字用于类型保护,可以在运行时判断一个对象是否属于某个类型,并根据不同的类型执行不同的逻辑。
具体来说,is
关键字通常和 instanceof
运算符一起使用,用于判断一个对象是否是某个类的实例。例如:
1class Animal { 2 name: string; 3 constructor(name: string) { 4 this.name = name; 5 } 6} 7 8class Dog extends Animal { 9 breed: string; 10 constructor(name: string, breed: string) { 11 super(name); 12 this.breed = breed; 13 } 14} 15 16function isDog(animal: Animal): animal is Dog { 17 return (animal as Dog).breed !== undefined; 18} 19 20let a1 = new Animal("Tom"); 21let d1 = new Dog("Tony", "Poodle"); 22 23console.log(isDog(a1)); // false 24console.log(isDog(d1)); // true
在上面的代码中,我们定义了一个 isDog
函数,它接受一个 Animal
类型的参数,返回值是一个布尔值。如果这个参数是 Dog
类型的实例,则返回 true
;否则返回 false
。注意,这里我们使用 animal is Dog
语法来显式地指定返回值类型为布尔值,表示这个函数就是一个类型谓词函数。
在 isDog
函数中,我们通过判断传入的 animal
参数是否含有 breed
属性,来判断它是否是 Dog
类型的实例。如果是,则返回 true
;否则返回 false
。
最后,我们可以通过调用 isDog
函数来判断一个对象是否是 Dog
类型的实例,并根据不同的类型执行相应的逻辑。
最近更新时间:2024-08-10