Skip to content

Commit a1d83c4

Browse files
committed
[3주차] chp9
1 parent 99afb47 commit a1d83c4

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

백윤서/chapter09/README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# 9장 타입 제한자
2+
3+
## 9.1 top 타입
4+
5+
`top` 타입은 시스템에서 가능한 모든 값을 나타내는 타입이다. 모든 타입은 `top` 타입에 할당할 수 있다.
6+
7+
### `any`
8+
9+
`any` 타입은 모든 타입의 위치에 제공될 수 있다는 점에서 `top` 타입처럼 작동할 수 있다. 단 타입 검사를 수행하지 않도록 명시적으로 지시한다는 문제점을 갖기 때문에 어떤 값이든 될 수 있음을 나타내려면 `unknown` 타입이 훨씬 안전하다.
10+
11+
### `unknown`
12+
13+
타입스크립트에서 `unknown` 타입은 진정한 `top` 타입이다. 타입스크립트는 `unknown` 타입의 값을 `any` 타입보다 훨씬 더 제한적으로 취급한다. 타입스크립트는 `unknown` 타입 값의 속성에 직접 접근할 수 없고 `top` 타입이 아닌 타입에는 할당할 수 없다.
14+
15+
## 9.2 타입 서술어
16+
17+
타입스크립트에는 인수가 특정 타입인지 여부를 나타내기 위해 불리언 값을 반환하는 함수를 위한 구문이 있으며, 이를 타입 서술어(사용자 정의 타입 가드)라고 부른다. 타입 서술어의 반환 타입은 매개변수의 이름, `is` 키워드, 특정 타입으로 선언할 수 있다.
18+
19+
## 9.3 타입 연산자
20+
21+
### `keyof` 연산자
22+
23+
타입스크립트는 기존에 존재하는 타입을 사용하고, 해당 타입에 허용되는 모든 키의 조합을 반환하는 `keyof` 연산자를 제공한다. `keyof` 연산자는 존재하는 타입의 키를 바탕으로 유니언 타입을 생성하는 좋은 기능이다.
24+
25+
### `typeof`
26+
27+
`typeof`는 제공되는 값의 타입을 반환한다. 자바스크립트의 `typeof` 연산자는 타입에 대한 문자열 이름을 반환하는 런타임 연산일 뿐이다.
28+
29+
### `keyof typeof`
30+
31+
타입스크립트는 두 키워드를 함께 연결해 값의 타입에 허용된 키를 간결하게 검색할 수 있다.
32+
33+
## 9.4 타입 어서션
34+
35+
타입스크립트는 값의 타입에 대한 타입 시스템의 이해를 재정의하기 위한 구문으로 타입 어서션을 제공한다. 다른 타입을 의미하는 값의 타입 다음에 `as` 키워드를 배치한다. 타입 시스템은 어서션을 따르고 값을 해당 타입으로 처리한다. 타입 어서션은 자주 사용되면 안 되고, 사용하는 것이 안전하다고 확실히 확신할 때만 사용해야 한다.
36+
37+
## 9.5 `const` 어서션
38+
39+
`const` 어서션은 배열, 원시 타입, 값, 별칭 등 모든 값을 상수로 취급해야 함을 나타내는 데 사용한다. 특히 `as const`는 수신하는 모든 타입에 다음 세 가지 규칙을 적용한다.
40+
41+
- 배열은 읽기 전용 튜플로 취급
42+
- 리터럴은 일반적인 원시 타입과 동등하지 않고 리터럴로 취급
43+
- 객체의 속성은 읽기 전용으로 간주

0 commit comments

Comments
 (0)