无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

TypeScript 高級語法——Class(三)

2023-08-08 15:48 作者:沒用軟件開發(fā)日記  | 我要投稿


????和interface一樣,類也有泛型機(jī)制,寫法同泛型接口。泛型無法用于靜態(tài)字段、靜態(tài)類,因?yàn)殪o態(tài)資源在類定義時就會被確定下來而不是在實(shí)例化時。

? ? 面向?qū)ο蟮木幊讨幸欢〞嬖诙鄳B(tài)的概念,引用TS官方的例子,這個例子中的“this is Type”作為基礎(chǔ)類型守衛(wèi)存在。以isFile為例this is FileRep守衛(wèi)標(biāo)記了這個函數(shù)中的this為FileRep,以此為前提t(yī)his instanceof FileRep才沒有報(bào)錯。這種機(jī)制讓TS良好的在多態(tài)的環(huán)境下運(yùn)行(這個例子中FileRep、Directory、Networked都是FileSystemObject的子類)。

????在TS中類、方法、字段可以是抽象的,如上例中抽象方法getName是不可以提供具體實(shí)現(xiàn)細(xì)節(jié)的,也就是說他只有函數(shù)簽名;因?yàn)槌橄蠓椒╣etName是類Base內(nèi)的函數(shù)成員所以類Base也必須是抽象的。

????在這個抽象類Base中存在著有具體實(shí)現(xiàn)的printName方法,也就是說抽象類可以類比為具有一部分具體實(shí)現(xiàn)的接口(interface),并且不同于普通的類,抽象類與接口相同不會被轉(zhuǎn)換成JS代碼。從完整性角度來看抽象類缺乏完整的具體實(shí)現(xiàn)所以不可被實(shí)例化、從無法編譯為JS代碼來看抽象類是缺乏運(yùn)行時體現(xiàn)的所以無法被實(shí)例化。

????繼承抽象類的類必須實(shí)現(xiàn)抽象類的抽象部分,上例中Derived為抽象方法getName提供了具體實(shí)現(xiàn)。

? ? 在TS的類型系統(tǒng)中,不同類型之間是可以單向賦值的,前提是被賦值的一方一定是賦值方的子集(Employee類包含所有Person類的組成部分)。

????上例是一個極端的例子fn函數(shù)可以接受任何對象,因?yàn)镋mpty是空對象(是任何對象的子集);

TypeScript 高級語法——Class(三)的評論 (共 條)

分享到微博請遵守國家法律
正宁县| 米脂县| 华阴市| 闻喜县| 仁怀市| 理塘县| 奉节县| 丽江市| 荣昌县| 兴山县| 固原市| 达孜县| 松滋市| 呼伦贝尔市| 阿图什市| 榆社县| 手机| 鄢陵县| 富川| 新源县| 明光市| 东明县| 曲松县| 正蓝旗| 涟水县| 花莲市| 河源市| 舒兰市| 吴堡县| 务川| 大冶市| 卓资县| 天峨县| 同江市| 澄江县| 东乌珠穆沁旗| 石景山区| 华亭县| 铁岭县| 团风县| 东阿县|