TypeScript 문법 종합반 3주차
기본 타입 익혀보기
01. 타입을 왜 제대로 알아야 하는가
- 타입 안정성 그리고 코드 품질!
02. 기본 타입 훑어보기
- boolean
: 2가지의 상태
: 3가지 이상의 상태를 표현하고 싶은 경우 -> enum이나 string을 사용 - number
: TypeScript에서 사용하는 모든 숫자를 나타냄 - string
: 텍스트 데이터 - 배열
: 기본 타입에 []가 붙은 형태 - 튜플 (tuple)
: 서로 다른 타입의 원소를 순서에 맞게 가질 수 있는 특수한 형태의 배열
: “정의된 데이터 타입의 개수와 순서에 맞추어 저장을 하는 것이 필수이다!” - enum
: 명확하게 관련된 상수 값들을 그룹화하고자 할 때 사용하는 게 좋다.
: 그러나 값의 수가 많지 않고, 값들 사이의 관계가 뚜렷하지 않으면 사용하지 않는 게 좋다.
: enum은 열거형 데이터 타입이라고도 한다.
03. const, 그리고 readonly
- const와 readonly는 불변성을 보장하는 친구!
- let
: 변수 - const
: 상수 - readonly
: TypeScript에서 객체의 속성을 불변으로 만드는 데 사용되는 키워드이다.
04. any와 unknown, union에 대하여
- 어쩔 수 없이 가변적인 타입의 데이터를 저장하고 싶다면 any보다는 unknown을 사용하자!
그리고, 가변적인 타입을 일일이 정의할 수 있다면 union 사용이 가장 낫다. - any
: TypeScript의 any 타입은 모든 타입의 슈퍼 타입이다.
: 어떤 타입의 값이든 저장할 수 있다는 의미이다.
: JavaScript의 object 타입과 같은 최상위 타입이라고 생각하면 된다.
: TypeScript에서 any를 쓰는 게 맞냐? 🤔
: TypeScript를 사용하는 주된 이유 중 하나는 프로그램의 타입 안정성을 확보하기 위한 것이었음.
: any 타입은 코드의 안전성과 유지 보수성을 저해할 수 있다. 가급적 사용을 지양해야 한다. - unknown
- union
- 여러 타입을 하나의 변수로 해결하겠다는 생각은 가급적 지양해주세요!
TypeScript 문법 종합반 4주차
01. enum과 object literal을 비교해보기
- enum
- 열거형 데이터 타입
- 코드 가독성 높이고 명확한 상수 값 정의 가능
- object literal(객체 리터럴)
- const 또는 let 키워드를 사용
- 키 + 값의 쌍(pair)으로 구성된 객체를 정의하는 방식
- enum에 비해 object literal이 가지는 장점
- enum의 각 멤버 : 상수 -> number, string 타입의 값만 대입할 수 있었음 but 객체 리터럴에서는 어떤 타입의 값도 대입 가능
- 객체 리터럴 ~ 코드 내에서 사용하기 전에 값이 할당되어야 하므로, 런타임 에러를 방지할 수 있다.
- enum을 쓰면 좋은 경우
- 간단한 상수 값을 그룹화해서 관리할 때
- 각 멤버의 값이 변하면 안 되는 경우
- 객체 리터럴을 사용하면 좋은 경우
- 멤버의 값이나 데이터 타입 변경이 필요한 경우
- 복잡한 구조와 다양한 데이터 타입을 사용해야 할 때
02. 유틸리티 타입 훑어보기
- Partial<T>
- 타입 T의 모든 속성을 선택적으로 만든다.
- 기존 타입의 일부 속성만 제공하는 객체를 쉽게 생성 가능
- Required<T>
- 타입 T의 모든 속성을 필수적으로 만든다.
- T 타입 객체에 정의된 모든 속성이 반드시 전부 제공되는 객체를 생성할 때 쓰인다.
- 속성명 뒤에 ? 가 붙는 친구들은 선택적 속성이다.
있어도 되고 없어도 되는 친구라는 뜻이다.
- ReadOnly<T>
- 타입 T의 모든 속성을 읽기 전용(read-only)으로 만든다.
- 이를 통해 readonly 타입의 속성들로 구성된 객체가 아니어도 완전한 불변 객체로 취급할 수 있다.
- Pick<T,K>
- 타입 T에서 K 속성들만 선택하여 새로운 타입을 만든다.
- 타입의 일부 속성만을 포함하는 객체를 쉽게 생성할 수 있다.
- Omit<T, K>
- 타입 T에서 K 속성들만 제외한 새로운 타입을 만든다.
- 기존 타입에서 특정 속성을 제거한 새로운 타입을 쉽게 생성할 수 있다.
03. 실습_별다방 프로그램 만들기
NestJS
https://docs.nestjs.com/guards
'Coding > 내일배움캠프' 카테고리의 다른 글
[내일배움캠프] NestJS 1주차, 2주차 | Node.js 4기 | Day 60 | 24.03.04.(월) (0) | 2024.03.04 |
---|---|
[내일배움캠프] TypeScript 5주차 | Node.js 4기 | Day 59 | 24.03.03.(일) (0) | 2024.03.03 |
[내일배움캠프] TypeScript 1주차, 2주차 | Node.js 4기 | Day 57 | 24.03.01.(금) (0) | 2024.03.01 |
[내일배움캠프] 내배민 KPT 작성 | Node.js 4기 | 24.02.29.(목) (0) | 2024.02.29 |
[내일배움캠프] Node.js 4기 TIL | Day 56 | 24.02.29.(목) (1) | 2024.02.29 |