新聞中心
TypeScript中的instanceof關(guān)鍵字用于檢查一個(gè)對(duì)象是否是某個(gè)類(lèi)的實(shí)例,而instancetype關(guān)鍵字則用于定義一個(gè)類(lèi)的類(lèi)型,表示該類(lèi)是其子類(lèi)的實(shí)例類(lèi)型。

創(chuàng)新互聯(lián)是專(zhuān)業(yè)的運(yùn)城網(wǎng)站建設(shè)公司,運(yùn)城接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行運(yùn)城網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
1. instanceof關(guān)鍵字
instanceof關(guān)鍵字用于檢查一個(gè)對(duì)象是否是某個(gè)類(lèi)的實(shí)例,它的語(yǔ)法如下:
object instanceof ClassName
object是要檢查的對(duì)象,ClassName是要檢查的類(lèi)名,如果object是ClassName的實(shí)例,那么表達(dá)式的結(jié)果為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,因?yàn)镈og是Animal的子類(lèi)
2. instancetype關(guān)鍵字
instancetype關(guān)鍵字用于定義一個(gè)類(lèi)的類(lèi)型,表示該類(lèi)是其子類(lèi)的實(shí)例類(lèi)型,它的語(yǔ)法如下:
class ClassName extends BaseClass {
instancetype ThisIsInstanceType;
}
ClassName是要定義類(lèi)型的類(lèi)名,BaseClass是基類(lèi),這樣,ClassName的實(shí)例類(lèi)型就是其子類(lèi)的實(shí)例類(lèi)型。
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 {
handle(animal: T): void {
animal.move(); // 所有Animal的子類(lèi)都有move方法,所以可以調(diào)用它
}
}
const dogHandler = new AnimalHandler(); // DogHandler的類(lèi)型參數(shù)為Dog,即Dog的實(shí)例類(lèi)型
const catHandler = new AnimalHandler(); // CatHandler的類(lèi)型參數(shù)為Cat,即Cat的實(shí)例類(lèi)型
本文標(biāo)題:typescriptinstancetype
分享URL:http://m.5511xx.com/article/dpeiegh.html


咨詢(xún)
建站咨詢(xún)
