はじめに
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はオブジェクト、関数、プリミティブ、配列、タプルも宣言可能。