-
TypeScript - 타입에 대한 정의FrontEnd/TypeScript 2022. 10. 21. 02:07반응형
TypeScipr(이하 TS)에서 여러 가지 Type이 존재한다.
이는 JavaScript와도 동일하기 때문에 차근차근 알아보자.
Type
number : 숫자를 나타낸다.
string : 문자를 나타낸다.
undefined : 존재하지 않음을 나타낸다. / 메모리도 할당되지 않는다.
null : 없는 '값'이다. / 메모리는 할당된다.
unknown : 타입을 모른다는 뜻을 가리킨다.
any : 어떤 타입이든 가능하다.
void : 아무 것도 리턴하지 않는다. / 생략가능
never : 아무 것도 리턴할 수 없다.
object : 원시타입을 제외한 모든 타입을 담을 수 있다.
Type 응용
1. Type Aliase라고 하는 이것은 type을 내가 정의할 수 있다.
가령 볼펜이라는 type을 내가 정의한다면
type pen = {
length : number,
color : string
}
이런 식으로 type을 정의할 수 있다. 할당 할 때도 const blackPen:pen = {}으로 쓸 수 있다.
2. UnionType이라고 하는 것은 OR와 비슷한 개념이다. '|'기호를 사용한다.
type command = 'go' | 'back' 이런 식으로 정의한 뒤 const act:command로 할당하면 act는 go와 back만 쓸 수 있다.
3. discriminated는 1번과 2번의 결합체라고 볼 수 있다.
type pass = { record : number, auth : true}, type fail = { record : number}
이런 두 타입이 있다고 해보자.
type result = pass | fail / result에 pass와 fail을 union Type으로 할당했다.
const studentA:result로 할당하면 student는 pass와 fail중에 하나만 쓸 수 있고,
만약 pass라면 student는 auth와 recode의 인자를 갖지만 fail이라면 record만 가질 수 있다.
4. intersection은 AND와 비슷한 성격이다. type 두 개를 묶으면 둘 다 가진다.
type sex = { sex : string } / type length = {num : number}두 타입을 정의하고, const male : sex & length로 할당하면
male은 sex와 length두 인자를 모두 입력해줘야한다.
주로 사용되는 type과 응용은 이정도이다.
이 외에도 enum, inference, assertion 등이 있지만 그렇게 좋은 방법은 아니므로 생략한다.
물론 적재적소에 쓰일 수도 있지만 위와 같은 방식으로 타입을 정해서 쓰는 게 훨씬 좋다.
Function과 Array
function Add(num1:number, num2:number):number {return num1 + num2}Add라는 함수는 인자로 type이 number인 두 개의 인자를 받는다.return되는 Type역시 number Type이다.const Array: string[] = ["a", "b"]이렇게 하면 string을 원소로 갖는 배열을 의미한다.const Tuple : [string, number] : 이런 식으로 서로 다른 Data Type을 할당할 수 있는게 Tuple인데 좋지는 않다.왜냐하면 접근할 때 index형식으로 접근해야 하며 이렇게 작성하면 가독성이 떨어진다.반응형'FrontEnd > TypeScript' 카테고리의 다른 글
TypeScript로 STACK QUE 구현해보기 (0) 2023.01.03 TypeScript 시작하기! (0) 2022.10.19