TypeScript class類相容
TypeScript類和介面的相容性非常類似,但是類分例項部分和靜態部分。
比較兩個類型別資料時,只有例項成員會被比較,靜態成員和建構函式不會比較。
程式碼例項如下:
[typescript] 純文字檢視 複製程式碼class Antzone { webName: string; constructor(address: string, age: number) { } } class Other { webName: string; constructor(age: number) { } } let ant: Antzone=new Antzone("青島市南區",4); let other: Other; other = ant; //賦值成功
賦值成功,反過來也是如此,建構函式是否相容不會影響。再來看一段程式碼例項:
[typescript] 純文字檢視 複製程式碼class Antzone { webName: string; constructor(address: string, age: number) { } } class Other { webName: string; target:string; constructor(age: number) { } } let ant: Antzone=new Antzone("青島市南區",4); let other: Other; other = ant; //賦值報錯
因為Other中的所有例項成員必須在Antzone中找到對應的成員。
類私有成員問題:
私有成員會影響相容性判斷,如果目標型別包含一個私有成員,那麼源型別必須包含來自同一個類的這個私有成員。
允許子類賦值給父類,但是不能賦值給其它有同樣型別的類。
關於私有成員可以參閱TypeScript 類訪問修飾符一章節。
[typescript] 純文字檢視 複製程式碼class Antzone { webName: string; constructor(address: string, age: number) { } } class Other { private webName: string; constructor(age: number) { } } let ant: Antzone=new Antzone("青島市南區",4); let other: Other; other = ant; //賦值報錯
由於是Other中的webName是私有成員,所以會報錯。
相關文章
- TypeScript學習筆記之五類(Class)TypeScript筆記
- Typescript的interface、class和abstract classTypeScript
- TypeScript 編譯 classTypeScript編譯
- TypeScript 之 Class(下)TypeScript
- TypeScript 之 Class(上)TypeScript
- TypeScript 泛型相容TypeScript泛型
- TypeScript 函式相容TypeScript函式
- TypeScript 型別相容TypeScript型別
- TypeScript 裡的 class fieldTypeScript
- JavaScript 和 TypeScript 中的 classJavaScriptTypeScript
- 被迫開始學習Typescript —— classTypeScript
- JavaScript class 類JavaScript
- 007 Class(類)
- JavaScript:類(class)JavaScript
- TypeScript中,type、interface、class的區別TypeScript
- React — Class類元件React元件
- 如何使用 vue + typescript 編寫頁面 (typescript進階-相容篇)VueTypeScript
- java反射之Class類Java反射
- 類定義(class definition)
- TypeScript abstract 抽象類TypeScript抽象
- CSS class 類選擇器CSS
- Kotlin Vocabulary | 密封類 sealed classKotlin
- class 類 this指向的問題
- 瞭解下C# 類(Class)C#
- [譯]Typescript : 類 vs 介面TypeScript
- TypeScript 類實現介面TypeScript
- TypeScript學習(三)—— 類TypeScript
- TypeScript 介面繼承類TypeScript繼承
- ES6 class類的用法
- 【JVM】深入解析class類檔案JVM
- typescript探索(二)- 介面與類TypeScript
- TypeScript 類靜態屬性TypeScript
- TypeScript介面與類的使用TypeScript
- TypeScript 中 class 的例項成員與靜態成員TypeScript
- JavaScript新增class樣式類程式碼JavaScript
- Java | 頂層類(Top-Level Class)Java
- [譯] 不用 Class,如何寫一個類
- es6類宣告,class總結