ホームページ > 記事 > ウェブフロントエンド > typescript のインターフェイスとクラスの詳細な説明 (例付き)
この記事では、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 を定義し、それにコンストラクターの最初のパラメーターを割り当てました
class A { constructor(public a: string) }
インターフェイスの実装
クラス既存のクラスを継承できるだけでなく、インターフェイスを実装することもできます。インターフェイス内の属性には、クラス内に対応する実装が必要であることに注意してください。実装のキーワードは、implements
class B extends A { d: number = 1 }
もちろん、これも可能です。実装と継承を同時に使用しても問題ありませんclass C implements IA {
name = 'c'
}
class D extends A implements IA { name = 'd' }を使用することです。上記では、文字列属性 sa を宣言し、初期値 nnnn を割り当てました。それにアクセスする必要がある場合は、それを呼び出すだけです。次のような
class A { static sa = 'nnnn' }スペースが限られているため、最初はここで止めましょう。
以上がtypescript のインターフェイスとクラスの詳細な説明 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。