⭐️ 타입이 너무 길고 복잡하면 변수에 넣어서 쓸 수 있다. (타입 별칭을 사용하여 사용자 정의 타입 만들기)
type 타입명 = 타입
- 타입변수에는 온갖걸 다 넣을 수 있다.
- 타입명은 대문자로 시작하는 것이 작명관습이다. (일반 변수와 차별화 두기 위함)
- 타입변수는 재정의가 불가능하다.
type 타입명 = 타입명 | 타입명
type 타입명 = 타입 & 타입
type 함수타입 = (a :파라미터타입) => 리턴타입
let 함수명 :타입변수명 = function(){}
type Member = {
name: string,
age: number,
plusOne: (x:number) => number,
changeName: (x: string) => void,
}
- 광범위하게 지정한 타입 모두를 허용하는 것이 아니라, 좀 더 엄격하게 타입을 제한할 수 있다. (미리 들어올 수 있는 자료를 정해놓는 것)
👉🏻let 이름 :'ha0'
이라고 하면, '이름'이라는 변수에는 무조건 'ha0'이라는 문자만 들어올 수 있음
var me:{name: 'ha0'} = {name: 'ha0'}
function makeMe(a: 'ha0') {
}
makeMe(me.name)
var me = {name: 'ha0'}
function makeMe(a: 'ha0') {
}
makeMe(me.name as 'ha0')
오브젝트 자료를 만들 때 타입지정을 literal type처럼 해달라는 뜻.
- object valuer값을 그대로 타입으로 지정해준다.
- object의 모든 속성을 readonly로 한다.
- object자료를 만들고 완전히 변경할 수 없게, 타입마저도 Literal type으로 지정하고 싶은 경우 사용
var me = {name: 'ha0'} as const
function makeMe(a: 'ha0') {
}
makeMe(me.name)
(이렇게하면 me는 'ha0'타입이 됨)