typescript のインターフェイスとクラスの詳細な説明 (例付き)

不言
リリース: 2018-10-19 14:38:16
転載
2150 人が閲覧しました

この記事では、typescript のインターフェイスとクラスについて詳しく説明します (例を示します)。必要な方は参考にしていただければ幸いです。

わかりやすくするために、将来、typescript は ts と省略されます。

InterfaceInterface

一部の学生は、Inweakly のインターフェイスに慣れていない可能性があります。型付き言語では、言語レベルでその痕跡を確認するのは困難です。強く型付けされた言語とは異なり、言語レベルが考慮されます。しかし、ts の世界では、その痕跡を見ることができます。率直に言えば、それはオブジェクトの内容、つまり構造を定義し説明することだけを担当します。もちろん、インスタンス化することはできません。

定義

では、インターフェイスを定義するにはどうすればよいでしょうか? もちろん、キーワードinterface

interface IA {
    name: string
}
ログイン後にコピー

を使用します。インターフェイス IA は上で宣言されています。は属性名、 は文字列型です。
このようにして、IA 型を変数に宣言し、初期値を割り当てることができます

var a: IA = {
    name: 'hello'
}
ログイン後にコピー

Inheritance

IA の構造も含む IB インターフェイスがある場合は、インターフェイスを継承することもできます。単純にそれを継承し、独自の属性を拡張できます。

interface IB extends IA {
    id: number
}
ログイン後にコピー

Class

クラスはインターフェイスに似ていますが、定義に加えて、インスタンス化できる変数に値を代入するなどの実装もあります。

##定義#定義されたキーワードは class です。es6 に慣れている学生は使い慣れていると思います。

class A {
    a: string = 'xxxxx'
}
ログイン後にコピー

上記は、文字列型 a を持つクラス A を定義し、それに初期値を割り当てます。 xxxxx を次のように使用し、インスタンス化して、属性 a

var a = new A()
console.log(a.a)
ログイン後にコピー

を参照できるようにします。もちろん、属性 a

Public、private、protected を変更することもできます。および他のメンバーのアクセス修飾子

属性にはアクセス権ポイントがあり、どのメンバーがアクセスできるか、誰がアクセスできるか

public は全員がアクセスできることを意味します

private 内部のみメンバーはアクセスできます、端的に言えば、組み込み関数はアクセスできます

protected は保護されています、自分以外、クラスを継承する人は誰でもアクセスできます

上記のキーワードは通常追加されますそうでない場合、それらは public です。

いわゆるメンバーは、属性に限定されませんが、関数とも呼ばれるメソッドも含まれますが、これらは一般にクラス内のメソッドと呼ばれます。上記の宣言では属性の型が指定されていませんが、対応する型は初期値に基づいて推論できるため、これは正当です

#Constructor

##クラスにとって、コンストラクターは当然ながら非常に特殊であり、インスタンス化するとき、つまり強い型言語では、関数は通常、クラス名に基づいて名前が付けられ、実装されます。もちろん、厳密に言えば、これは js のルールです。

実際には、コンストラクターは通常の関数と何ら変わりません。関数本体は、プロパティやその他の操作に初期値を代入することができます。コンストラクターを定義した場合でも、デフォルトのコンストラクターは存在しますが、何もしません。

class A {
    public a = 'a'
    private b = 'b'
    protected c = 'c'
}
ログイン後にコピー
ts では、コンストラクターには魔法の機能もあります。つまり、コンストラクターに初期値を定義して割り当てるというものです。コンストラクターのパラメーターは、クラス Statement で繰り返さずに、次のようにコンストラクターで初期値を割り当てます。

class A {
    a: string
    constructor(arg: string) {
        this.a = arg
    }
}
ログイン後にコピー

上記では、A に文字列属性 a を定義し、それにコンストラクターの最初のパラメーターを割り当てました

継承

#インターフェイスと同様に、クラスの継承でもキーワード extends を使用します

class A {
    constructor(public a: string)
}
ログイン後にコピー

インターフェイスの実装

クラス既存のクラスを継承できるだけでなく、インターフェイスを実装することもできます。インターフェイス内の属性には、クラス内に対応する実装が必要であることに注意してください。

実装のキーワードは、implements

class B extends A {
    d: number = 1
}
ログイン後にコピー

もちろん、これも可能です。実装と継承を同時に使用しても問題ありません

class C implements IA {
    name = 'c'
}
ログイン後にコピー

静的メンバー


通常のメンバーは各インスタンスに個別に存在しますが、静的メンバーはクラス内で共有されます。静的メンバーを宣言する方法は、キーワード static

class D extends A implements IA {
    name = 'd'
}
ログイン後にコピー
を使用することです。上記では、文字列属性 sa を宣言し、初期値 nnnn を割り当てました。それにアクセスする必要がある場合は、それを呼び出すだけです。次のような

class A {
    static sa = 'nnnn'
}
ログイン後にコピー
スペースが限られているため、最初はここで止めましょう。

以上がtypescript のインターフェイスとクラスの詳細な説明 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート