TypeScript - 선언 파일과 구성 및 옵션
- global 전역 변수
- import, export가 없거나 declare global이면 전역
- 전역 어디서나 import 없이 사용 가능
- window 등 전역 객체에 타입 정의 가능
- declare
- 오직 선언만 한다. 값(초기값)은 허용되지 않는다. (literal type은 가능)
- 타입 검사(Type Checker)
- lib
- 브라우저에서 실행되지 않는 경우 DOM, condole 등을 제거
- skipLibCheck
- 사용되지 않은 소스에서의 선언은 선언 파일 타입 체크도 생략
- strict
- noImplicitAny, strictNullChecks, strictFunctionTypes 모두 활성화
- 기타
- checkJs with alloHs
- “extends”: “../tsconfig.base.json”
- outDir
- lib
TypeScript - 타입 운영
- Mapped Typed
- 다른 타입을 가져와서 해당 타입의 각 속성에 대해 일부 작업 수행
- 존재하는 타입에 keyof 연산자를 사용해 키를 가져오는 방식
- 존재하는 타입의 키를 매핑하도록 타입에 지시하면 새로운 타입으로 매핑
- Mapped Type - never
- 유니언에서 never은 무시된다.
- Mapped Type은 타입의 멤버를 매핑할 수 있다.
- 조건부 타입은 조건이 충족되는 경우 타입을 never로 변환하는 데 사용할 수 있다.
- Conditional Type - 조건부 타입
- condition ? trueExpression : falseExpression 형식의 조건부 타입
- 함수에 제공된 옵션 객체를 기반으로 함수의 반환 타입을 변경하는데 유용
- 제네릭 타입에 유니언 타입을 제공하는 경우 결과 타입은 각 구성 요소에 조건부 타입을 적용하는 유니언이 된다.
- Conditional type - never
- never은 유니언에서 무시되기 때문에 유니언 타입에서 제네릭 조건부의 결과는 never가 아닌 것이 된다.
- never & SomeType ⇒ never
- never | SomeType ⇒ SomeType
- never은 유니언에서 무시되기 때문에 유니언 타입에서 제네릭 조건부의 결과는 never가 아닌 것이 된다.
- Template Literal Type
- 문자열이 일부 문자열 패턴과 일치함을 나타내고 싶을 때 사용할 수 있다. (primitive 타입만 사용 가능, Symbol 불가)
TypeScript - 유틸리티 타입
- Utility Types
- 타입 변환을 쉽게 하기 위하여 유틸리티 타입 제공 (전역 사용)
- Utility Types 종류
- Awaited<T>
- Promise<T> 형태의 타입을 전달 받아서 해당 Promise가 반환하는 리턴값의 타입을 반환
- Omit<T, U>
- T 타입에서 2번째 인자로 전달한 U 유니온에 지정된 키만 프로퍼티로 갖지 않는 새로운 타입 반환
- Pick<T, U>
- T 타입에서 2번째 인자로 전달한 타입에 지정된 키만 프로퍼트로 갖는 새로운 타입을 반환
- Partial<T>
- T 타입의 일부 프로퍼티만 가질 수 있는 타입을 반환
- Required<T>
- T 타입의 모든 프로퍼티를 필수로 갖는 타입을 반환
- Record<K, T>
- K 키로, T 타입으로 하는 새로운 타입 반환
- Parameters<T>
- 함수 타입 T의 매개변수 타입을 튜플 형태로 반환
- ReturnType<T>
- 함수 타입 T의 리턴 타입 유형 반환
- Awaited<T>
'교육 (Today I Learned) > Hanaro' 카테고리의 다른 글
[Hanaro] 24일차 / React (Hooks- useState, useRef) (0) | 2024.02.20 |
---|---|
[Hanaro] 23일차 / React 시작하기 (0) | 2024.02.18 |
[Hanaro] 20일차 / TypeScript (class, 타입 제한자, Generic) (0) | 2024.02.15 |
[Hanaro] 19일차 / TypeScript (function, Array, tuple, interface) (0) | 2024.02.13 |
[Hanaro] 18일차 / TypeScript (Type System, Union&Literal, Object, function) (0) | 2024.02.08 |