[TS] type alias , interface

냐옹·2023년 11월 16일
0

JS

목록 보기
4/6
  • 타입의 이름을 지정하는 방법들
  • 파스칼케이스로 사용

차이점

확장의 방법

interface는 extends
type alias는 intersection Operator(&)

interface Animal {
    name : string;
}

interface Bear extends Animal{
    honey : boolean
}

const bear1 : Bear = {
    name : 'honey bear',
    honey : true
}
type Animal2 = {
    name : string;
}

type Bear2 = Animal & {
    honey : boolean
}


const bear2 : Bear2 = {
    name : 'honey bear',
    honey : false
}

선언병합 가능여부

interface는 선언 병합이 가능함, type alias는 불가능

interface Animal {
    name : string;
}

interface Animal {
    honey : boolean
}

const bear : Animal = {
    name : 'honey bear',
    honey : true
}
type Animal = {
    name : string;
}

// 여기서 에러남 
type Animal =  {
    honey : boolean
}

공통점

implements 사용가능하다

둘다 클래스에 implements를 사용할 수 있다.

interface IArticle {
  category : string;
  content : string;
}

class Article implements IArticle {
  public category = '';
  public content = '';
}

Union

Union 유형을 사용하면 개발자가 타입a 또는 타입b가 될 수 있는 새 type을 만들 수 있다.
선언은 항상 type으로 해야함

interface Animal { 
    name : string;
}

interface Bear {
    honey : boolean
}

type Newtype = Animal | Bear;

const bear1 : Newtype = {
    name : 'honey bear1'
}

const bear2 : Newtype = {
    name : 'honey bear2',
    honey : true
}

0개의 댓글

Powered by GraphCDN, the GraphQL CDN