금붕어의 타입 스크립트 사전

2021. 12. 13. 15:56개발 잡부/도서관

728x90

.ts 파일이 실행되기 까지

  • ts파일이 tsc compiler를 거쳐 .js 파일이 된다.
  • tsconfig.json에 의해 정의된 프로젝트를 컴파일 한다.

 

TypeScript의 장단점

  • 장점: 
  • 단점

 

tsconfig.json 파일이란?

  • Typescript 프로젝트의 최상단에 위치한다.
  • 프로젝트를 컴파일 할 때 컴파일 옵션을 명시한다.

 

TypeScript의 Type들

  • Built-in Types(Primitives) : string, boolean, number, symbol, void, null, undefined
  • 유저 정의 타입들(User-Defined Types): arrays, json, enums, classes, interfaces

 

Symbol이란?

  • 유니크하며 변경할 수 없다.
  • string의 값이 같다고 해서 일반 string 변수와 같지 않다.
  • 일종의 고유명사다.

 

void 타입이란?

  • 타입이 없는 경우를 표현하며, any의 반대 역할을 한다.
  • void 타입의 변수에는 null이나 undefined만 할당 가능하다.

 

unknown 타입이란?

  • unknown은 any 타입의 type-safe 버전이다. 무엇이든 할당할 수 있지만 unknown에 들어간 값을 다른 값에 대입할 수 없다. 
  • type assertion (타입 명시)를 하지 않거나 narrowing을 하지 않는 이상 사용할 수 없다.

 

Any 타입을 쓰는 경우

  • 타입에 대한 정확한 내용을 모를 때

 

undefined란? 

  • 초기화 없이 변수선언하면 undefined가 됨.
  • 또는 object의 key가 존재하지 않을 때에도 반환됨

 

never 타입이란?

  • 반환 할 일이 없는 경우
  • throw할 때의 반환형, 무한루프 등등

 

Union Type이란?

  • 타입의 합집합. A | B라면 이 타입이 A일수도, B일수도 있다.

 

InterSection Type이란?

  • 두가지 이상의 인터페이스나 타입을 조합하는 것.
  • 조합한 타입의 프로퍼티를 모두 가진다.

 

type aliases란?

  • 타입이나 복합 타입의 표기명을 정하는 것.
  • type NewType = a | b;

 

튜플이란?

  • 특정 인덱스에 특정 타입의 값이 들어가는 타입.
  • 배열과 비슷하지만, 순서에 따라서 들어가는 타입이 다르다.

 

타입 명시

  • 기본적으로 변수 선언시에 명시하지만, 값을 다른 타입으로 변환할 수 있다.
  • as 문: (value as string)
  • <> 문: (<string> value)

 

literal 타입이란?

  • 특정한 값을 타입으로써 사용하는 것.
  • 변수에 들어갈 수 있는 값을 명시적으로 제한 하는 효과가 있음

 

Conditional Types

  • 타입을 조건에 따라서 다른 타입으로 할당할 수 있게 하는 것.

 

Function Type

  • bind, call, apply등의 내장함수를 포함한 글로벌 타입

 

배열 사용 방법

  • let a: number[] = [];
  • let b: Array<number> = [];

 

함수에 타입을 명시하는 방법

  • function 함수명(매개변수1: 타입, 매개변수2: 타입, …): 반환 타입 { … }
  • function greet(name: string): string { … }

 

오브젝트를 선언하는 방법

  • let 변수명: { 키1: 밸류 타입, 키2: 밸류 타입 } = { … }
  • Optional 요소: { 키?: 밸류 타입 }

 

object를 unpack하는 방법

  • 지역 변수
  • 함수 매개변수

 

함수 오버로드 시의 주의점

  • 함수의 선언에 호환되어야 한다.

 

타입 추론 (type inference)란 무엇인가?

  • 변수의 타입을 명시하지 않았을 때, 초기화 값을 기반으로 추론하는 것이다.
  • 초기화된 값과 다른 값도 포함될 수 있다면 명시적으로 표현해야 한다.

'개발 잡부 > 도서관' 카테고리의 다른 글