序文: TS の基本原則の 1 つは、構造の型チェックを行うことです。インターフェイスの目的は、これらの型に名前を付け、コードまたはサードパーティのコードのコントラクトを定義することです。 最終的に 1. インターフェース定義インターフェースの役割は タイプ str = 文字列 この記述方法は、関数型、クラス型、配列型のみを記述できるインターフェースには適用できません。 サンプルコードは次のとおりです。 // シンプルなインターフェースを定義する interface Person { 名前: 文字列 } //getメソッドを定義する function getPersonName(person: Person): void { console.log(人.名前) } // setメソッドを定義する function setPersonName(person: Person, name: string): void { person.name = 名前 } // personオブジェクトを定義する let person = { 名前: 「お粥一杯」 } setPersonName(人、'イーワン・ゾウ') // 変更成功 getPersonName(person) // Yiwan Zhou 型チェックではプロパティの順序はチェックされず、対応するプロパティが存在し、同じ型であることのみが要求されることに注意してください。 2. 属性2.1 オプション属性インターフェース内のプロパティがオプションであるか、特定の条件下でのみ存在する場合は、プロパティ名の横に ? 記号を追加できます。サンプルコードは次のとおりです。 ;(関数 () { // シンプルなインターフェースを定義する interface Person { 名前: 文字列 // 年齢はオプションであることを示します age?: number } // personオブジェクトを定義する let person = { 名前:「周の一杯」 年齢: 18歳 趣味:「コーディング」 } //getメソッドを定義する function getPersonName(person: Person): void { // console.log(person.age, person.hobby) // プロパティ 'hobby' はタイプ 'Person' に存在しません。 } })() この時点では、 2.2 読み取り専用プロパティプロパティを読み取り専用プロパティにしたい場合は、プロパティの前に サンプルコードは次のとおりです。 ;(関数 () { インターフェース Person { // 名前を読み取り専用に設定する readonly name: 文字列 } // personオブジェクトを定義する let person = { 名前:「周の一杯」 } // setメソッドを定義する function setPersonName(person: Person, name: string): void { person.name = name // 'name' は読み取り専用プロパティであるため、割り当てることはできません。 } setPersonName(人、'お粥一杯') })() 3. クラスタイプ3.1 継承インターフェースクラスと同様に、インターフェースも相互に継承できます。 これにより、あるインターフェースから別のインターフェースにメンバーをコピーできるようになり、インターフェースを再利用可能なモジュールに分割する際の柔軟性が向上します。 インターフェースの継承では extends キーワードを使用します。サンプル コードは次のとおりです。 // 2つのインターフェースを定義する interface PersonName { 名前: 文字列 } インターフェース PersonAge { 年齢: 番号 } // 上記の 2 つのインターフェースを継承する Person インターフェースを定義します。複数のインターフェースを使用する場合は、カンマで区切ります。interface Person extends PersonName, PersonAge { 趣味: 弦楽器 // 戻り値が文字列であるメソッドを定義する say(): 文字列 } 人 = { 名前:「周の一杯」 年齢: 18歳 趣味:「コーディング」 // サンプルメソッド say() { 「一碗の周」を返す }, } //getメソッドを定義する function getPersonName(person: Person): void { console.log(人名、年齢、趣味) } getPersonName(person) // Yiwan Zhou 18 コーディング 複数のインターフェースを継承する場合に、カンマで区切って使用します。 4. 関数の種類TS では、インターフェースは関数型のインターフェースも記述できます。 関数型インターフェースの定義は、パラメータ リストと戻り値の型のみを持つ関数定義に似ています。パラメータ リスト内の各パラメータには、名前と型が必要です。 サンプルコードは次のとおりです。 インターフェースMyAdd{ (x: 数値、y: 数値): 数値 } 定義が完了すると、この関数インターフェースを通常のインターフェースのように使用できるようになります。 サンプルコードは次のとおりです。 myAdd: MyAdd = (x: 数値, y: 数値): 数値 => { x + yを返す } 上記のコードは、次の関数定義と同等です。 myAdd: (x: 数値、y: 数値) => 数値 = ( x: 数値、 y: 数値 ): 数値 => { x + yを返す }
以下もご興味があるかもしれません:
|
<<: CSS の :focus-within の楽しさについて簡単に説明します
>>: CSS--overflow:hidden のプロジェクト例
1 QPS 計算 (1 秒あたりのクエリ数) MyISAMエンジンベースのDBの場合 MySQL&g...
ホワイトリストルールの構文:基本ルール wl:ID [否定] [mz:[$URL:target_ur...
目次1. 連結() 2. 結合() 3. プッシュ() 5. シフト() 6. シフト解除() 7....
目次1. HTML構造を作成する2. テーブルを作成する3. ヘビの頭と体を作る4. 食べ物を作る5...
序文従来のWEBレイアウトに沿うため、すべてヘッダーとフッターモードの左・中央・右レイアウトで書かれ...
目次1. props/$emit導入コードサンプル2.Vスロット導入コードサンプル3.$refs/ ...
イメージのバージョンとタグを確認するには、docker hubで確認する必要があります。アドレスは次...
目次1. usrディレクトリにHadoopディレクトリを作成し、インストールパッケージをそのディレク...
序文Vue(発音は /vjuː/、view に似ています)は、ユーザーインターフェイスを構築するため...
今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。定義と使用法: <...
このチュートリアルは Windows システムにのみ適用されます。インストールしたがまだインストール...
目次背景1. dns-prefetch とは何ですか? 2. dns-prefetch を設定するに...
この記事では、アンカー配置を実現するためのVue +要素UIの具体的なコードを例として紹介します。具...
目次実際のプロジェクトで遭遇する要件実装が間違っているところもある私は個人的に、実装するより良い方法...
コードをコピーコードは次のとおりです。 <!DOCTYPE html> <html...