TIL61.Interface&Type Aliases


インタフェースの使用方法とタイプ別名について説明します.

インタフェースとは?


インタフェースは、任意の2つのシステム間で簡単に対話する条件、規則である.
interface User {
  age: number;
  name: string;
}
interface+は、必要な名前、オブジェクトにアイテムを入れ、タイプを指定します.

インタフェースの利用


インタフェースは、変数、関数などの面で使用できます。

interface User {
  age: number;
  name: string;
}

//변수에 인터페이스 활용하기
let yeonjeong: User = {
  age: 12,
  name: "연정",
};

//함수에 인터페이스 활용하기
function getUser(user: User) {
  console.log(user);
}

getUser(yeonjeong);
userパラメータは、ユーザインタフェースフォーマットに従うデータのみを受信できます.

拡張インタフェース

//인터페이스 확장
interface Person {
  name: string;
  age: number;
}
//변경 전 코드
interface Developer {
  name: string;
  age: number;
  language: string;
}
//변경 후 코드
interface Developer extends Person {
  language: string;
}

let Thor: Developer = {
    name:'토르',
    age:100,
    language:'TS'
}
開発者の値に重複する値がある場合は、キーワードextendsで属性とタイプを拡張できます.
Developerインタフェースを使用するオブジェクトThorにPersonとDeveloperのプロパティがない場合、エラーが発生します.

タイプ別名


特定のタイプまたはインタフェースを参照できるタイプ変数を示します.
// 1.string 타입을 사용할 때
const name: string = 'mong';

// 2.타입 별칭을 사용할 때
type MyName = string;
const name: MyName = 'mong';

//interface-타입별칭
type Developer = {
	name: string;
  	skill: string;
}

タイプ別名VSインタフェース

  • 型エイリアスとインタフェースプレビューの結果は異なります.
  • インタフェースは拡張可能であり、タイプ別名は拡張不可能である.したがってtypeを使用するよりinterfaceと宣言したほうがいい.
  • タイプ別名は、基本タイプ、Unionタイプ、tupleを使用する必要がある場合に使用されます.
    インタフェースは不可能です.
  • *interface、type別名が多い場合は、単独で取り出してモジュール化して使用できます.(export, import)