Type Script-クラス継承-インタフェース-汎用
12538 ワード
Type Script-クラス継承-インタフェースクラス継承を実現する簡単な例 定義インタフェース インタフェースの継承 インタフェースのマルチ継承 は、複数のインターフェース を実現する.汎用 汎用関数 を使用多重汎用 クラス継承を実現する簡単な例はES 2015と同様にTypeScriptもextendsキーワードをサポートしており、脱糖処理後にコードをプロトタイプ継承に基づくJavaScriptコードに変換することができる.
インタフェースの定義オブジェクト向けプログラミング言語においてTypeScriptを含めたソリューションが提案されている.オブジェクトにいくつかのインタフェースが実装され、これらのインタフェースにいくつかの属性と動作があると宣言されている場合、オブジェクトがこれらの属性を持っていることを確認できます. TypeScriptでインタフェースを実装するには、このインタフェースで定義されているすべての方法を実装する必要があります.そうしないと、コンパイルフェーズでエラーが放出されます.
インタフェースの継承
インタフェースのマルチ継承
複数のインタフェースの実装
汎用型古典的なデータ構造の例:binarySearchTree ノード を定義する上記のコードでは、ノードというクラスを定義しました.このクラスのインスタンスは、ツリー内のノードを表します.各ノードには、左の子と子を持つノードがあり、anyタイプを使用すると、BinarySearchTree内のノードに任意のタイプのデータを格納するためにanyタイプの値があります. 以上は合理的に見えるが、TypeScriptが提供する最も重要な特性である静的タイプは使用されていない. ソリューションは、次の です.
汎用関数の使用
たじゅうはんけい作成
class Human{
static totalPeople = 0;
constructor(protected name: string, private age: number){
Human.totalPeople += 1;
}
talk(){
return `Hi,I'm ${this.name}!`;
}
}
class Developer extends Human{
constructor(name:string,private languages:string[],age:number){
super(name,age);
}
}
インタフェースの定義
interface Accountable {
accountNumner:number;
getIncom(): number;
}
class Individual implements Accountable{
getIncom(): number {
return 0;
}
accountNumner: number;
}
class Firm implements Accountable{
getIncom(): number {
return 0;
}
accountNumner: number;
}
インタフェースの継承
interface Accountable {
accountNumner:number;
getIncom(): number;
}
interface ssn extends Accountable{
ssn:string
}
インタフェースのマルチ継承
interface Human1{
age:number;
name:number;
}
interface Accountable {
accountNumner:number;
getIncom(): number;
}
interface ssn extends Accountable,Human1{
ssn:string
}
複数のインタフェースの実装
class Person implements Human1,Accountable{
accountNumner: number;
age: number;
name: number;
getIncom(): number {
return 0;
}
}
汎用型
class Node{
value: any;
left: Node;
right: Node;
}
class Node<T>{
value: <T>;
left: Node<T>;
right: Node<T>;
}
汎用関数の使用
function identity<T>(arg: T){
return arg;
}
interface Comparable {
compare(a:Comparable): number;
}
function sort<T extends Comparable>(arr: Comparable[]): Comparable[]{
}
たじゅうはんけい
class Pair<K,V>{
key:k;
value:V;
}
let pair = new Pair(String,number);