타입 별칭(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가 뜬다
반응형
'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 |