Javascript/TypeScript

[TypeScript] 타입 별칭(Type Aliases), 선택적 타입

뉴벡엔드 2024. 3. 12. 23:16

타입 별칭(Type Aliases)

 

const name : string = "nick"

//타입별칭 사용시

type Name = string;
const name : Name = "nick";

//interface 같은 복잡한 타입도 가능


type Customer = {
    name : string,
    phone : number
}

//interface를 만들때는 "=" 이 없음

interface Customer {
    name : string;
    age? : number;
    phone : number;
}

//제네릭도 가능

type User<T> = {
    name : T
}
 

optional type(선택적 타입) 

변수옆에 ?를 붙이면 선택적 타입이 된다

선택적 타입은

명시한 타입 | undefined

ex) age의 타입은 number | undefined

type Customer = {
    name : string,
    age? : number,
    phone : number
}

 


argument 타입지정 및 return 값 타입 지정

function customerAdd (name:string) : Customer  {
    return {
        name
    }
}


//화살표 함수로 하면 

const customerAdd  = (name:string) : Customer=> ({name})

type vs interface

둘의 차이는 확장 가능(interface) / 불가능(type) 여부

 

따라서 type보다 interface 선언 추천

 

예를 들면

 

interface PlayerB {
    firstName :string
}

interface PlayerB {
    lastName :string
}

class User implements PlayerB {
    constructor(
        public firstName:string,
        public lastName:string
    ){}
}

 

인터페이스는 똑같은 이름으로 만들면 속성을 추가할 수 있지만

 

추상메서드는 Duplicate identifier 'PlayerB'

error가 뜬다

 

 

참고 : 타입 별칭 | 타입스크립트 핸드북 (joshua1988.github.io)

반응형

'Javascript > TypeScript' 카테고리의 다른 글

[TypeScript] Call Signatures  (0) 2024.03.13
[TypeScript] unknown  (0) 2024.03.13
[TypeScript] readonly  (0) 2024.03.13
[TypeScript] Tuple  (0) 2024.03.13
[TypeScript] TypeScript 사용하는 이유  (0) 2024.02.20