기초상식
원시타입: 객체를 제외한 string,number,undfiend,null...
튜플,유니온이란?
튜플(Tuple)
사전적인 의미론 튜플(tuple)은 셀 수 있는 수량의 순서 있는 열거이다.
길이와 각 요소마다의 타입이 고정된 배열이라고 이해해두면 될듯.
type UserTuple = [string, number, string, boolean]
const user01:UserTuple = ["dbstjghks",586665,"닉네임",false]
const user02:UserTuple = ["dbstjghks",586665,"닉네임",false,5798798798] //ERROR
다만, push를 이용하여 해당 배열에 요소를 추가하면 에러가 발생하는게 아닌 정상적으로 요소가 추가되어 배열 요소 타입 밑 타입 순서를 고정시키는 튜플의 의미가 없기 때문에
배열 인덱스마다의 타입과 순서를 “완벽히” 고정시키기 위해
readonly 키워드를 사용한다.
type UserTuple = readonly [string, number, string, boolean]
const user01:UserTuple = ["dbstjghks",586665,"닉네임",false]
const user02:UserTuple = ["dbstjghks",586665,"닉네임",false,5798798798] //ERROR
push불가
유니온
string | number 등 또는 |기호를 이용하여 타입 표기한것.
type과 interface의 차이란?
type
1) type같은 경우는 자료형이 원시타입일경우 type으로 표기한다
2) 확장시 &기호를 사용한다.
type Person = {
name: string,
age: number
}
type Student = Person & { // 확장(상속)
school: string
}
interface
1) interace같은 경우는 객체일때 interface를 활용한다. 원시자료형에는 사용할수 없다.
2) 선언적 확장이 가능하다.
interface Person = {
name: string;
}
interface Person = {
name: string;
age: number;
}
이런식으로도 확장 가능. extends를 사용해도 확장 가능.