0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

TypeScriptの学習で学んだことについて後日自分で振り返るためにまとめていきます。

TypeScript 学習記録2
の続きです。

インターフェース

インターフェースの使い方

クラスがどんなフィールドやメソッドを持っているか定義する。
同じ名前で宣言すると、プロパティが追加される。
extendsを用いることで継承したインターフェースを作れる。
implementsでインターフェースを実装したクラスを作れる。

インターフェースは型エイリアスも拡張できる。

interface Sample {
  name: string
}

interface Sample {
  number: number
}

interface SampleEx extends Sample{
    array:string[]
}

class SampleImp implements SampleEx {
    name: string
    num:number
    array:string[]

    constructor(name: string, num:number,array:string[]){
        this.name = name
        this.num = num
        this.array = array
        
    }
}


type SampleType = {
    name: string
    num: number
  }
  
  interface SampleExSt extends SampleType {
    array: string[]
  }
  
  const SampleExSt1: SampleExSt = {
    name: 'Taro',
    num: 1,
    array: ['abc','def']
  }

typeとの違い

・インターフェースは同名で宣言して型を追加できるが、typeはできない。
・インターフェースは継承によって新しいインターフェースを作り、typeは交差型でtype同士を合体させて新しいtypeを作る。
・インターフェースはオブジェクト、関数の型のみ宣言可能、typeはオブジェクト、関数、プリミティブ、配列、タプルも宣言可能。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?