Skip to content

Commit 5721ecb

Browse files
committed
Update: Fix typo
1 parent a744752 commit 5721ecb

File tree

9 files changed

+158
-115
lines changed

9 files changed

+158
-115
lines changed

β€Žpages/Advanced Types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ let v = new BasicCalculator(2)
677677
.currentValue();
678678
```
679679
680-
ν΄λž˜μŠ€λŠ” `this` νƒ€μž…μ„ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— ν™•μž₯ν•  수 있으며 μƒˆλ‘œμš΄ ν΄λž˜μŠ€λŠ” λ³€κ²½ 없이 이전 λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
680+
ν΄λž˜μŠ€λŠ” `this` νƒ€μž…μ„ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— ν™•μž₯ν•  수 있으며 μƒˆλ‘œμš΄ ν΄λž˜μŠ€λŠ” λ³€κ²½ 없이 이전 λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
681681
682682
```ts
683683
class ScientificCalculator extends BasicCalculator {

β€Žpages/Basic Types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ notSure = false; // μ’‹μ•„μš”, ν™•μ‹€ν•œ boolean
154154
`any` νƒ€μž…μ€ κΈ°μ‘΄ JavaScript둜 μž‘μ—…ν•  수 μžˆλŠ” κ°•λ ₯ν•œ λ°©λ²•μœΌλ‘œ 컴파일 κ³Όμ •μ—μ„œ νƒ€μž… 검사λ₯Ό μ μ§„μ μœΌλ‘œ μ‹€ν–‰ \(opt-in\) 및 쀑지\(opt-out\) ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
155155

156156
λ‹€λ₯Έ 언어와 λ§ˆμ°¬κ°€μ§€λ‘œ `객체`도 λΉ„μŠ·ν•œ 역할을 ν•  κ²ƒμœΌλ‘œ μ˜ˆμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
157-
κ·ΈλŸ¬λ‚˜ `객체` νƒ€μž…μ˜ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή `객체`μ—λŠ” κ°’λ§Œ ν• λ‹Ήν•  수 μžˆμŠ΅λ‹ˆλ‹€ - μ‹€μ œλ‘œ μ‘΄μž¬ν•˜λŠ” 것도 μž„μ˜μ˜ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€:
157+
κ·ΈλŸ¬λ‚˜ `객체` νƒ€μž…μ˜ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή `객체`μ—λŠ” κ°’λ§Œ ν• λ‹Ήν•  수 μžˆμŠ΅λ‹ˆλ‹€ - μ‹€μ œλ‘œ μ‘΄μž¬ν•˜λŠ” 것도 μž„μ˜μ˜ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€:
158158

159159
```ts
160160
let notSure: any = 4;

β€Žpages/Classes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ abstract class Animal {
411411

412412
abstract으둜 ν‘œμ‹œλœ 좔상 클래슀 λ‚΄μ˜ λ©”μ„œλ“œλŠ” κ΅¬ν˜„μ„ ν¬ν•¨ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ νŒŒμƒλœ ν΄λž˜μŠ€μ—μ„œ κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.
413413
좔상 λ©”μ„œλ“œλŠ” μΈν„°νŽ˜μ΄μŠ€ λ©”μ„œλ“œμ™€ μœ μ‚¬ν•œ ꡬ문을 μ‚¬μš©ν•©λ‹ˆλ‹€.
414-
λ‘˜ λ‹€ λ©”μ„œλ“œ 본문을 ν¬ν•¨ν•˜μ§€ μ•Šκ³  λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
414+
λ‘˜ λ‹€ λ©”μ„œλ“œ 본문을 ν¬ν•¨ν•˜μ§€ μ•Šκ³  λ©”μ„œλ“œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
415415
κ·ΈλŸ¬λ‚˜ 좔상 λ©”μ„œλ“œλŠ” `abstract` ν‚€μ›Œλ“œλ₯Ό 포함해야 ν•˜λ©° μ„ νƒμ μœΌλ‘œ μ ‘κ·Ό μ§€μ •μžλ₯Ό 포함할 수 μžˆμŠ΅λ‹ˆλ‹€.
416416

417417
```ts

β€Žpages/Enums.md

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# μ—΄κ±°ν˜• (Enums)
22

3-
μ—΄κ±°ν˜•μ„ μ‚¬μš©ν•˜λ©΄ 이름이 μžˆλŠ” μƒμˆ˜λ“€μ„ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
4-
μ—΄κ±°ν˜•μ˜ μ‚¬μš©μ€ λ¬Έμ„œμ˜ μ˜λ„λ‚˜ λͺ…ν™•ν•œ 사둀듀을 μ‰½κ²Œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
3+
μ—΄κ±°ν˜•μ„ μ‚¬μš©ν•˜λ©΄ 이름이 μžˆλŠ” μƒμˆ˜λ“€μ„ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
4+
μ—΄κ±°ν˜•μ˜ μ‚¬μš©μ€ λ¬Έμ„œμ˜ μ˜λ„λ‚˜ λͺ…ν™•ν•œ 사둀듀을 μ‰½κ²Œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
55
TypeScript λŠ” 숫자 및 λ¬Έμžμ—΄ 기반 μ—΄κ±°ν˜•μ„ λͺ¨λ‘ μ œκ³΅ν•©λ‹ˆλ‹€.
66

77
## 숫자 μ—΄κ±°ν˜• (Numeric enums)
88

9-
λ¨Όμ € 숫자 μ—΄κ±°ν˜•μœΌλ‘œ μ‹œμž‘ν•©λ‹ˆλ‹€. λ‹€λ₯Έ μ–Έμ–΄μ—μ„œ μ—΄κ±°ν˜•μ„ μ ‘ν•΄λ΄€λ‹€λ©΄ 더 μ΅μˆ™ ν•  κ²ƒμž…λ‹ˆλ‹€.
9+
λ¨Όμ € 숫자 μ—΄κ±°ν˜•μœΌλ‘œ μ‹œμž‘ν•©λ‹ˆλ‹€.
10+
λ‹€λ₯Έ μ–Έμ–΄μ—μ„œ μ—΄κ±°ν˜•μ„ μ ‘ν•΄λ΄€λ‹€λ©΄ 더 μ΅μˆ™ ν•  κ²ƒμž…λ‹ˆλ‹€.
1011
μ—΄κ±°ν˜•μ€ `enum` ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
1112

1213
```ts
@@ -18,8 +19,8 @@ enum Direction {
1819
}
1920
```
2021

21-
μœ„μ—μ„œ `Up` λŠ” `1` 둜 μ΄ˆκΈ°ν™”λœ 숫자 μ—΄κ±°ν˜•μž…λ‹ˆλ‹€.
22-
μ•„λž˜μ— μ΄μ–΄μ„œ λ“±μž₯ν•˜λŠ” 멀버듀은 μžλ™μœΌλ‘œ μ¦κ°€ν•©λ‹ˆλ‹€.
22+
μœ„μ—μ„œ `Up` λŠ” `1` 둜 μ΄ˆκΈ°ν™”λœ 숫자 μ—΄κ±°ν˜•μž…λ‹ˆλ‹€.
23+
μ•„λž˜μ— μ΄μ–΄μ„œ λ“±μž₯ν•˜λŠ” 멀버듀은 μžλ™μœΌλ‘œ μ¦κ°€ν•©λ‹ˆλ‹€.
2324
즉, `Direction.Up` 은 `1`, `Down` 은 `2`, `Left` λŠ” `3`, `Right` λŠ” `4` μž…λ‹ˆλ‹€.
2425

2526
μ›ν•œλ‹€λ©΄ μ΄ˆκΈ°ν™”λ₯Ό μ™„μ „νžˆ 없앨 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
@@ -33,7 +34,7 @@ enum Direction {
3334
}
3435
```
3536

36-
μ—¬κΈ°μ—μ„œλŠ” `Up` 은 `0` 이며, `Down` 은 `1` 이 λ©λ‹ˆλ‹€.
37+
μ—¬κΈ°μ—μ„œλŠ” `Up` 은 `0` 이며, `Down` 은 `1` 이 λ©λ‹ˆλ‹€.
3738
이 μžλ™ 증가 λ™μž‘μ€ λ©€λ²„μ˜ κ°’ μžμ²΄μ— μ‹ κ²½ μ“°μ§€ μ•Šκ³  각 μ—΄κ±°ν˜•μ΄ λ™μΌν•œ μ—΄κ±°ν˜•μ˜ λ‹€λ₯Έ κ°’κ³Ό κ΅¬λ³„λ˜λŠ” κ²½μš°μ— μœ μš©ν•©λ‹ˆλ‹€.
3839

3940
μ—΄κ±°ν˜•μ„ μ‚¬μš©ν•˜λŠ” 것은 κ°„λ‹¨ν•©λ‹ˆλ‹€: μ—΄κ±°ν˜• 자체의 μ†μ„±μœΌλ‘œ λͺ¨λ“  멀버에 μ—‘μ„ΉμŠ€ν•˜κ³ , μ—΄κ±°ν˜•μ˜ 이름을 μ‚¬μš©ν•˜μ—¬ νƒ€μž…μ„ μ„ μ–Έν•©λ‹ˆλ‹€.
@@ -51,8 +52,8 @@ function respond(recipient: string, message: Response): void {
5152
respond("Princess Caroline", Response.Yes)
5253
```
5354

54-
숫자 μ—΄κ±°ν˜•μ€ [κ³„μ‚°λœ, μƒμˆ˜ 멀버 (computed and constant members)](#computed-and-constant-members)에 ν˜Όν•© 될 수 μžˆμŠ΅λ‹ˆλ‹€.
55-
λ‹¨νŽΈμ μœΌλ‘œ, μ΄ˆκΈ°ν™”κ°€ μ—†λŠ” μ—΄κ±°ν˜•μ€ μƒμˆ˜ λ˜λŠ” λ‹€λ₯Έ μƒμˆ˜ μ—΄κ±°ν˜•μ˜ λ©€λ²„λ‘œ μ΄ˆκΈ°ν™”λœ 숫자 μ—΄κ±°ν˜•μ„ 따라야할 ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.
55+
숫자 μ—΄κ±°ν˜•μ€ [κ³„μ‚°λœ, μƒμˆ˜ 멀버 (computed and constant members)](#computed-and-constant-members)에 ν˜Όν•©λ  수 μžˆμŠ΅λ‹ˆλ‹€.
56+
λ‹¨νŽΈμ μœΌλ‘œ μ΄ˆκΈ°ν™”κ°€ μ—†λŠ” μ—΄κ±°ν˜•μ€ μƒμˆ˜ λ˜λŠ” λ‹€λ₯Έ μƒμˆ˜ μ—΄κ±°ν˜•μ˜ λ©€λ²„λ‘œ μ΄ˆκΈ°ν™”λœ 숫자 μ—΄κ±°ν˜•μ„ 따라야할 ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.
5657
즉, λ‹€μŒμ€ ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€:
5758

5859
```ts
@@ -64,7 +65,7 @@ enum E {
6465

6566
## 문자 μ—΄κ±°ν˜• (String enums)
6667

67-
문자 μ—΄κ±°ν˜•μ€ λΉ„μŠ·ν•œ κ°œλ…μ΄μ§€λ§Œ μ•„λž˜μ— μ„€λͺ… 된 것과 같이 μ•½κ°„μ˜ λ―Έλ¬˜ν•œ [μ‹€ν–‰μ‹œ 차이 (runtime differences)](#enums-at-runtime)κ°€ μžˆμŠ΅λ‹ˆλ‹€.
68+
문자 μ—΄κ±°ν˜•μ€ λΉ„μŠ·ν•œ κ°œλ…μ΄μ§€λ§Œ μ•„λž˜μ— μ„€λͺ… 된 것과 같이 μ•½κ°„μ˜ λ―Έλ¬˜ν•œ [μ‹€ν–‰μ‹œ 차이 (runtime differences)](#enums-at-runtime)κ°€ μžˆμŠ΅λ‹ˆλ‹€.
6869
문자 μ—΄κ±°ν˜•μ—μ„œ 각 λ©€λ²„λŠ” λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ λ˜λŠ” λ‹€λ₯Έ 문자 μ—΄κ±°ν˜• λ©€λ²„λ‘œ μƒμˆ˜μ΄ˆκΈ°ν™”λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
6970

7071
```ts
@@ -76,8 +77,8 @@ enum Direction {
7677
}
7778
```
7879

79-
문자 μ—΄κ±°ν˜•μ€ μžλ™ 증가 λ™μž‘μ„ ν•˜μ§€ μ•Šμ§€λ§Œ 문자 μ—΄κ±°ν˜•μ€ "직렬화(serialize)"ν•˜λŠ” 이점이 μžˆμŠ΅λ‹ˆλ‹€.
80-
즉, 디버깅 쀑이며 숫자 μ—΄κ±°ν˜•μ˜ λŸ°νƒ€μž„ 값을 μ½μ–΄μ•Όν•˜λŠ” 경우 이 값은 μ’…μ’… 뢈투λͺ…ν•©λ‹ˆλ‹€ - 즉, 자체적으둜 μœ μš©ν•œ 의미λ₯Ό μ „λ‹¬ν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.([μ—­ λ§€ν•‘ (enums-at-runtime)](#enums-at-runtime)이 도움이 λ κ²ƒμž…λ‹ˆλ‹€)
80+
문자 μ—΄κ±°ν˜•μ€ μžλ™ 증가 λ™μž‘μ„ ν•˜μ§€ μ•Šμ§€λ§Œ 문자 μ—΄κ±°ν˜•μ€ "직렬화(serialize)"ν•˜λŠ” 이점이 μžˆμŠ΅λ‹ˆλ‹€.
81+
즉, 디버깅 쀑이며 숫자 μ—΄κ±°ν˜•μ˜ λŸ°νƒ€μž„ 값을 μ½μ–΄μ•Όν•˜λŠ” 경우 이 값은 μ’…μ’… 뢈투λͺ…ν•©λ‹ˆλ‹€ - 즉, 자체적으둜 μœ μš©ν•œ 의미λ₯Ό μ „λ‹¬ν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.([μ—­ λ§€ν•‘ (enums-at-runtime)](#enums-at-runtime)이 도움이 λ κ²ƒμž…λ‹ˆλ‹€)
8182
문자 μ—΄κ±°ν˜•μ„ μ‚¬μš©ν•˜λ©΄ μ—΄κ±°ν˜• 멀버 자체의 이름과 λ…λ¦½μ μœΌλ‘œ μ½”λ“œκ°€ 싀행될 λ•Œ 의미있고 읽기 μ‰¬μš΄ 값을 μ œκ³΅ν•©λ‹ˆλ‹€.
8283

8384
## 별쒅 μ—΄κ±°ν˜• (Heterogeneous enums)
@@ -95,7 +96,7 @@ JavaScript의 λŸ°νƒ€μž„ λ™μž‘μ„ μ‹€μ œλ‘œ μ‚¬μš©ν•˜λ €κ³  ν•˜μ§€ μ•ŠλŠ” ν•œ,
9596

9697
## κ³„μ‚°λœ μƒμˆ˜ 멀버 (Computed and constant members)
9798

98-
각 μ—΄κ±°ν˜• λ©€λ²„μ—λŠ” *constant* λ˜λŠ” *computed* 쀑 ν•˜λ‚˜μΌ 수 μžˆλŠ” 값이 μžˆμŠ΅λ‹ˆλ‹€.
99+
각 μ—΄κ±°ν˜• λ©€λ²„μ—λŠ” *constant* λ˜λŠ” *computed* 쀑 ν•˜λ‚˜μΌ 수 μžˆλŠ” 값이 μžˆμŠ΅λ‹ˆλ‹€.
99100
μ—΄κ±°ν˜• λ©€λ²„λŠ” λ‹€μŒκ³Ό 같은 경우 μƒμˆ˜λ‘œ κ°„μ£Όλ©λ‹ˆλ‹€:
100101

101102
* μ—΄κ±°ν˜•μ˜ 첫 번째 멀버이며 μ΄ˆκΈ°ν™”κ°€ μ—†μœΌλ©΄ 값이 `0` 으둜 μ§€μ •λ©λ‹ˆλ‹€:
@@ -105,7 +106,7 @@ JavaScript의 λŸ°νƒ€μž„ λ™μž‘μ„ μ‹€μ œλ‘œ μ‚¬μš©ν•˜λ €κ³  ν•˜μ§€ μ•ŠλŠ” ν•œ,
105106
enum E { X }
106107
```
107108

108-
* μ΄ˆκΈ°ν™”κ°€ μ—†κ³  μ•žμ˜ μ—΄κ±°ν˜• 멀버가 *숫자* 인 μƒμˆ˜μž…λ‹ˆλ‹€.
109+
* μ΄ˆκΈ°ν™”κ°€ μ—†κ³  μ•žμ˜ μ—΄κ±°ν˜• 멀버가 *숫자* 인 μƒμˆ˜μž…λ‹ˆλ‹€.
109110
이 경우 이후 λ‚˜μ˜€λŠ” μ—΄κ±°ν˜• λ©€λ²„μ˜ 값은 이전 μ—΄κ±°ν˜• λ©€λ²„μ˜ 값에 1을 λ”ν•œ 값이 λ©λ‹ˆλ‹€.
110111

111112
```ts
@@ -118,8 +119,8 @@ JavaScript의 λŸ°νƒ€μž„ λ™μž‘μ„ μ‹€μ œλ‘œ μ‚¬μš©ν•˜λ €κ³  ν•˜μ§€ μ•ŠλŠ” ν•œ,
118119
}
119120
```
120121

121-
* μ—΄κ±°ν˜• λ©€λ²„λŠ” μƒμˆ˜ μ—΄κ±°ν˜• ν‘œν˜„μ‹μœΌλ‘œ μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€.
122-
μƒμˆ˜ μ—΄κ±°ν˜• ν‘œν˜„μ‹μ€ 컴파일 μ‹œκ°„μ— μ™„μ „νžˆ 평가될 수 μžˆλŠ” TypeScript의 ν•˜μœ„ μ§‘ν•©μž…λ‹ˆλ‹€.
122+
* μ—΄κ±°ν˜• λ©€λ²„λŠ” μƒμˆ˜ μ—΄κ±°ν˜• ν‘œν˜„μ‹μœΌλ‘œ μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€.
123+
μƒμˆ˜ μ—΄κ±°ν˜• ν‘œν˜„μ‹μ€ 컴파일 μ‹œκ°„μ— μ™„μ „νžˆ 평가될 수 μžˆλŠ” TypeScript의 ν•˜μœ„ μ§‘ν•©μž…λ‹ˆλ‹€.
123124
ν‘œν˜„μ‹μ€ λ‹€μŒκ³Ό 같은 경우 μƒμˆ˜ μ—΄κ±° ν‘œν˜„μ‹μž…λ‹ˆλ‹€:
124125
1. λ¦¬ν„°λŸ΄ μ—΄κ±° ν‘œν˜„μ‹ (기본적으둜 문자 λ¦¬ν„°λŸ΄ λ˜λŠ” 숫자 λ¦¬ν„°λŸ΄)
125126
2. 이전에 μ •μ˜λœ μƒμˆ˜ μ—΄κ±°ν˜• 멀버 (λ‹€λ₯Έ μ—΄κ±°ν˜•μ—μ„œ 올 수 있음)에 λŒ€ν•œ μ°Έμ‘°
@@ -144,7 +145,7 @@ enum FileAccess {
144145

145146
## 톡합 μ—΄κ±°ν˜• 및 μ—΄κ±°ν˜• 멀버 νƒ€μž… (Union enums and enum member types)
146147

147-
κ³„μ‚°λ˜μ§€ μ•Šμ€ μƒμˆ˜ μ—΄κ±°ν˜• λ©€λ²„μ˜ 특수 ν•˜μœ„ 집합이 μžˆμŠ΅λ‹ˆλ‹€: λ¦¬ν„°λŸ΄ μ—΄κ±°ν˜• λ©€λ²„μž…λ‹ˆλ‹€.
148+
κ³„μ‚°λ˜μ§€ μ•Šμ€ μƒμˆ˜ μ—΄κ±°ν˜• λ©€λ²„μ˜ 특수 ν•˜μœ„ 집합이 μžˆμŠ΅λ‹ˆλ‹€: λ¦¬ν„°λŸ΄ μ—΄κ±°ν˜• λ©€λ²„μž…λ‹ˆλ‹€.
148149
λ¦¬ν„°λŸ΄ μ—΄κ±°ν˜• λ©€λ²„λŠ” μ΄ˆκΈ°ν™”λœ 값이 μ—†κ±°λ‚˜ λ‹€μŒ κ°’μœΌλ‘œ μ΄ˆκΈ°ν™” 된 값이 μžˆλŠ” μƒμˆ˜ μ—΄κ±°ν˜• λ©€λ²„μž…λ‹ˆλ‹€.
149150

150151
* λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ (예: `"foo"`, `"bar"`, `"baz"`)
@@ -179,8 +180,8 @@ let c: Circle = {
179180
}
180181
```
181182

182-
또 λ‹€λ₯Έ λ³€ν™”λŠ” μ—΄κ±° νƒ€μž… μžμ²΄κ°€ 각 μ—΄κ±°ν˜• λ©€λ²„μ˜ *ν•©μ§‘ν•©(union)* 이 λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
183-
[κ²°ν•© νƒ€μž… (union types)](./Advanced Types.md#union-types)에 λŒ€ν•΄ 아직 λ°°μš°μ§€ μ•Šμ•˜μ§€λ§Œ, μ•Œμ•„ 두어야 ν•  것은 μ‘°ν•© μ—΄κ±°ν˜•μ„ μ‚¬μš©ν•˜λŠ” νƒ€μž… μ‹œμŠ€ν…œμ΄ μ—΄κ±°ν˜• μžμ²΄μ— μ‘΄μž¬ν•˜λŠ” μ •ν™•ν•œ 값듀을 μ•Œκ³ μžˆλ‹€λŠ” 사싀을 ν™œμš©ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
183+
또 λ‹€λ₯Έ λ³€ν™”λŠ” μ—΄κ±° νƒ€μž… μžμ²΄κ°€ 각 μ—΄κ±°ν˜• λ©€λ²„μ˜ *ν•©μ§‘ν•©(union)* 이 λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
184+
[κ²°ν•© νƒ€μž… (union types)](./Advanced Types.md#union-types)에 λŒ€ν•΄ 아직 λ°°μš°μ§€ μ•Šμ•˜μ§€λ§Œ, μ•Œμ•„ 두어야 ν•  것은 μ‘°ν•© μ—΄κ±°ν˜•μ„ μ‚¬μš©ν•˜λŠ” νƒ€μž… μ‹œμŠ€ν…œμ΄ μ—΄κ±°ν˜• μžμ²΄μ— μ‘΄μž¬ν•˜λŠ” μ •ν™•ν•œ 값듀을 μ•Œκ³ μžˆλ‹€λŠ” 사싀을 ν™œμš©ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
184185
이 λ•Œλ¬Έμ— TypeScriptλŠ” 값을 잘λͺ» λΉ„κ΅ν•˜λŠ” 바보같은 버그λ₯Ό μž‘μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
185186

186187
```ts
@@ -197,13 +198,14 @@ function f(x: E) {
197198
}
198199
```
199200

200-
이 μ˜ˆμ œμ—μ„œ, λ¨Όμ € `x` κ°€ `E.Foo` κ°€ κ°€ *μ•„λ‹Œμ§€* κ²€μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€.
201-
이 검사λ₯Ό μ„±κ³΅ν•˜λ©΄ `||` κ°€ μ‹€ν–‰λ˜μ§€ μ•Šκ³  'if' 의 λ‚΄λΆ€κ°€ μ‹€ν–‰λ©λ‹ˆλ‹€.
201+
이 μ˜ˆμ œμ—μ„œ, λ¨Όμ € `x` κ°€ `E.Foo` κ°€ κ°€ *μ•„λ‹Œμ§€* κ²€μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€.
202+
이 검사λ₯Ό μ„±κ³΅ν•˜λ©΄ `||` κ°€ μ‹€ν–‰λ˜μ§€ μ•Šκ³  'if' 의 λ‚΄λΆ€κ°€ μ‹€ν–‰λ©λ‹ˆλ‹€.
202203
ν•˜μ§€λ§Œ 검사λ₯Ό μ„±κ³΅ν•˜μ§€ λͺ»ν•˜λ©΄ `x` λŠ” *였직* `E.Foo` 만 될 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ `E.Bar` 와 λ™μΌν•œ μ§€ ν™•μΈν•˜λŠ” 것은 μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.
203204

204205
## λŸ°νƒ€μž„μ‹œμ˜ μ—΄κ±°ν˜• (Enums at runtime)
205206

206207
μ—΄κ±°ν˜•μ€ λŸ°νƒ€μž„μ— μ‘΄μž¬ν•˜λŠ” μ‹€μ œ κ°μ²΄μž…λ‹ˆλ‹€.
208+
207209
예λ₯Ό λ“€μ–΄ λ‹€μŒ μ—΄κ±°ν˜•μ„ 보면,
208210

209211
```ts
@@ -226,6 +228,7 @@ f(E);
226228
### μ—­ λ§€ν•‘ (Reverse mappings)
227229

228230
멀버에 λŒ€ν•œ 속성 이름이 μžˆλŠ” 객체λ₯Ό λ§Œλ“œλŠ” 것 외에도 숫자 μ—΄κ±°ν˜• λ©€λ²„λŠ” μ—΄κ±°ν˜• κ°’μ—μ„œ μ—΄κ±°ν˜•μ˜ μ΄λ¦„μœΌλ‘œ *μ—­ λ§€ν•‘(reverse mapping)* 을 λ°›μŠ΅λ‹ˆλ‹€.
231+
229232
예λ₯Ό λ“€μ–΄, λ‹€μŒ μ˜ˆμ œμ—μ„œ:
230233

231234
```ts
@@ -247,16 +250,16 @@ var a = Enum.A;
247250
var nameOfA = Enum[a]; // "A"
248251
```
249252

250-
이 μƒμ„±λœ μ½”λ“œμ—μ„œ μ—΄κ±°ν˜•μ€ μ „λ°©ν–₯(forward) (`name` -> `value`) λ§€ν•‘κ³Ό μ—­λ°©ν–₯(reverse) (`value` -> `name`) 맀핑을 λͺ¨λ‘ μ €μž₯ν•˜λŠ” 객체둜 μ»΄νŒŒμΌλ©λ‹ˆλ‹€.
253+
이 μƒμ„±λœ μ½”λ“œμ—μ„œ μ—΄κ±°ν˜•μ€ μ „λ°©ν–₯(forward) (`name` -> `value`) λ§€ν•‘κ³Ό μ—­λ°©ν–₯(reverse) (`value` -> `name`) 맀핑을 λͺ¨λ‘ μ €μž₯ν•˜λŠ” 객체둜 μ»΄νŒŒμΌλ©λ‹ˆλ‹€.
251254
λ‹€λ₯Έ μ—΄κ±°ν˜• 멀버에 λŒ€ν•œ μ°Έμ‘°λŠ” 항상 속성 μ ‘κ·ΌμœΌλ‘œ 보내지며 κ²°κ³  인라인(inline)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
252255

253256
λ¬Έμžμ—΄ μ—΄κ±°ν˜• λ©€λ²„λŠ” 역맀핑을 μƒμ„±ν•˜μ§€ *μ•ŠμŠ΅λ‹ˆλ‹€*.
254257

255258
### `const` μ—΄κ±°ν˜• (`const` enums)
256259

257-
λŒ€λΆ€λΆ„μ˜ 경우 μ—΄κ±°ν˜•μ€ μ™„λ²½ν•˜κ²Œ μœ νš¨ν˜„ λ°©λ²•μž…λ‹ˆλ‹€.
258-
ν•˜μ§€λ§Œ λ•Œλ–„λ‘œ μš”κ΅¬μ‚¬ν•­μ΄ 더 μ—„κ²©ν•©λ‹ˆλ‹€.
259-
μ—΄κ±°ν˜•μ˜ 값에 μ ‘κ·Όν•  λ•Œ μ—¬λΆ€λŠμ΄ μƒμ„±λœ μ½”λ“œμ™€ 좔가적인 우회 λΉ„μš©μ„ ν”Όν•˜λ €λ©΄ `const` μ—΄κ±°ν˜•μ„ μ‚¬μš© ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
260+
λŒ€λΆ€λΆ„μ˜ 경우 μ—΄κ±°ν˜•μ€ μ™„λ²½ν•˜κ²Œ μœ νš¨ν˜„ λ°©λ²•μž…λ‹ˆλ‹€.
261+
ν•˜μ§€λ§Œ λ•Œλ–„λ‘œ μš”κ΅¬μ‚¬ν•­μ΄ 더 μ—„κ²©ν•©λ‹ˆλ‹€.
262+
μ—΄κ±°ν˜•μ˜ 값에 μ ‘κ·Όν•  λ•Œ μ—¬λΆ€λŠμ΄ μƒμ„±λœ μ½”λ“œμ™€ 좔가적인 우회 λΉ„μš©μ„ ν”Όν•˜λ €λ©΄ `const` μ—΄κ±°ν˜•μ„ μ‚¬μš© ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
260263
`const` μ—΄κ±°ν˜•μ€ μ—΄κ±°ν˜•μ— `const` μ§€μ‹œμžλ₯Ό μ‚¬μš©ν•˜μ—¬ μ •μ˜ν•©λ‹ˆλ‹€.
261264

262265
```ts
@@ -266,8 +269,8 @@ const enum Enum {
266269
}
267270
```
268271

269-
`const` μ—΄κ±°ν˜•μ€ μƒμˆ˜ μ—΄κ±°ν˜• ν‘œν˜„μ‹λ§Œ μ‚¬μš©ν•  수 있으며 일반 μ—΄κ±°ν˜•κ³Ό 달리 μ»΄νŒŒμΌν•˜λŠ” λ™μ•ˆ μ˜€λ‚˜μ „νžˆ μ œκ±°λ©λ‹ˆλ‹€.
270-
`const` μ—΄κ±°ν˜• λ©€λ²„λŠ” μ‚¬μš©ν•˜λŠ” μ‚¬μ΄νŠΈμ—μ„œ 인라인(inline)λ©λ‹ˆλ‹€.
272+
`const` μ—΄κ±°ν˜•μ€ μƒμˆ˜ μ—΄κ±°ν˜• ν‘œν˜„μ‹λ§Œ μ‚¬μš©ν•  수 있으며 일반 μ—΄κ±°ν˜•κ³Ό 달리 μ»΄νŒŒμΌν•˜λŠ” λ™μ•ˆ μ™„μ „νžˆ μ œκ±°λ©λ‹ˆλ‹€.
273+
`const` μ—΄κ±°ν˜• λ©€λ²„λŠ” μ‚¬μš©ν•˜λŠ” μ‚¬μ΄νŠΈμ—μ„œ 인라인(inline)λ©λ‹ˆλ‹€.
271274
`const` μ—΄κ±°ν˜•μ€ κ³„μ‚°λœ 멀버λ₯Ό κ°€μ§ˆμˆ˜ μ—†κΈ° λ•Œλ¬Έμ— κ°€λŠ₯ν•©λ‹ˆλ‹€.
272275

273276
```ts
@@ -297,5 +300,5 @@ declare enum Enum {
297300
}
298301
```
299302

300-
μ•°λΉ„μ–ΈνŠΈ μ—΄κ±°ν˜•κ³Ό λΉ„μ•°λΉ„μ–ΈνŠΈ μ—΄κ±°ν˜•μ˜ μ€‘μš”ν•œ 차이점 쀑 ν•˜λ‚˜λŠ” 일반 μ—΄κ±°ν˜•μ—μ„œ μ΄ˆκΈ°ν™”κ°€ μ—†λŠ” λ©€λ²„λŠ” 이전 μ—΄κ±°ν˜• 멀버가 μƒμˆ˜λ‘œ κ°„μ£Όλœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
303+
μ•°λΉ„μ–ΈνŠΈ μ—΄κ±°ν˜•κ³Ό λΉ„μ•°λΉ„μ–ΈνŠΈ μ—΄κ±°ν˜•μ˜ μ€‘μš”ν•œ 차이점 쀑 ν•˜λ‚˜λŠ” 일반 μ—΄κ±°ν˜•μ—μ„œ μ΄ˆκΈ°ν™”κ°€ μ—†λŠ” λ©€λ²„λŠ” 이전 μ—΄κ±°ν˜• 멀버가 μƒμˆ˜λ‘œ κ°„μ£Όλœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
301304
λ°˜λŒ€λ‘œ, μ΄ˆκΈ°ν™”κ°€ μ—†λŠ” μ•°λΉ„μ–ΈνŠΈ (그리고 λΉ„μƒμˆ˜(`non-const`)) μ—΄κ±°ν˜• λ©€λ²„λŠ” *항상* κ³„μ‚°λœ κ²ƒμœΌλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€.

0 commit comments

Comments
Β (0)