내가 쓰는 타입스크립트 정리 1(기초)

천재가되고싶다·2024년 4월 26일
0

기초상식

원시타입: 객체를 제외한 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를 사용해도 확장 가능.

0개의 댓글