여러 종류의 타입을 허용하기 위해
|(OR 연산자)로 연결한 타입
any 타입은 모든 타입을 허용하지만 유니언 타입은 | 연산자로 연결된 타입 중 하나를 허용한다.(() => {
// 문자를 받아서 콘솔에 출력하는 함수
function logString(msg: string) {
console.log(msg);
}
// 숫자를 받아서 콘솔에 출력하는 함수
function logNumber(msg: number) {
console.log(msg);
}
logString("hello");
logNumber(123);
// 유니언 타입
// | 연산자로 여러 타입을 지정
function log(msg: string | number | boolean) {
console.log(msg);
}
log("hello");
log(123);
log(false);
})();
값을 변수에 저장하듯 타입을 변수에 저장해서 사용한다.
type 키워드로 선언하는 사용자 정의 타입, 또는 ;으로 구분할 수 있지만 ;을 권장한다.(() => {
// 타입 별칭 생성
type User = {
name: string;
age: number;
};
const u1: User = {
name: "하루",
age: 5,
};
const u2: User = {
name: "나무",
age: 8,
};
console.log(u1.age, u2.name.toUpperCase());
})();
타입 여러 개를 하나로 합치기 위해 &(AND 연산자)로 연결한 타입
never 타입이 되면서 해당 속성은 사용할 수 없다.(() => {
// 할일 등록시 사용
type TodoRegist = { title: string; content: string };
// 할일 조회시 사용
type TodoInfo = TodoRegist & { id: number; done: boolean };
const todo1: TodoRegist = {
title: "타입스크립트 공부",
content: "타입스크립트 수업 대비해서 미리 책 읽어보기.",
};
const todo2: TodoInfo = {
id: 13,
title: "타입스크립트 공부",
content: "타입스크립트 수업 대비해서 미리 책 읽어보기.",
done: false,
};
})();