Skip to content

Commit 840594a

Browse files
committed
fix Italic
1 parent f234d09 commit 840594a

19 files changed

+149
-149
lines changed

β€Ždocs/documentation/ko/declaration-files/By Example.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ oneline: "How to create a d.ts file for a module"
2626

2727
## ν”„λ‘œνΌν‹°λ₯Ό κ°–λŠ” 객체 (Objects with Properties)
2828

29-
_λ¬Έμ„œ_
29+
*λ¬Έμ„œ*
3030

3131
> μ „μ—­ λ³€μˆ˜ `myLib`μ—λŠ” 인사말을 λ§Œλ“œλŠ” ν•¨μˆ˜ `makeGreeting`와,
3232
> μ§€κΈˆκΉŒμ§€ μƒμ„±ν•œ μΈμ‚¬λ§μ˜ 수λ₯Ό κ°€λ¦¬ν‚€λŠ” `numberOfGreetings` ν”„λ‘œνΌν‹°κ°€ μžˆμŠ΅λ‹ˆλ‹€.
3333
34-
_μ½”λ“œ_
34+
*μ½”λ“œ*
3535

3636
```ts
3737
let result = myLib.makeGreeting("hello, world");
@@ -40,7 +40,7 @@ console.log("The computed greeting is:" + result);
4040
let count = myLib.numberOfGreetings;
4141
```
4242

43-
_μ„ μ–Έ_
43+
*μ„ μ–Έ*
4444

4545
점 ν‘œκΈ°λ²•μœΌλ‘œ μ ‘κ·Όν•˜λŠ” νƒ€μž…μ΄λ‚˜ 값을 μ„€λͺ…ν•˜κΈ° μœ„ν•΄ `declare namespace`λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
4646

@@ -53,19 +53,19 @@ declare namespace myLib {
5353

5454
## μ˜€λ²„λ‘œλ“œλœ ν•¨μˆ˜ (Overloaded Functions)
5555

56-
_λ¬Έμ„œ_
56+
*λ¬Έμ„œ*
5757

5858
`getWidget` ν•¨μˆ˜λŠ” 숫자λ₯Ό 인자둜 λ°›μ•„ Widget을 λ°˜ν™˜ν•˜κ±°λ‚˜, λ¬Έμžμ—΄μ„ 인자둜 λ°›μ•„ Widget 배열을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
5959

60-
_μ½”λ“œ_
60+
*μ½”λ“œ*
6161

6262
```ts
6363
let x: Widget = getWidget(43);
6464

6565
let arr: Widget[] = getWidget("all of them");
6666
```
6767

68-
_μ„ μ–Έ_
68+
*μ„ μ–Έ*
6969

7070
```ts
7171
declare function getWidget(n: number): Widget;
@@ -74,7 +74,7 @@ declare function getWidget(s: string): Widget[];
7474

7575
## μž¬μ‚¬μš© κ°€λŠ₯ν•œ νƒ€μž… (μΈν„°νŽ˜μ΄μŠ€) (Reusable Types (Interfaces))
7676

77-
_λ¬Έμ„œ_
77+
*λ¬Έμ„œ*
7878

7979
> greeting을 λͺ…μ‹œν•  λ•Œ, λ°˜λ“œμ‹œ `GreetingSettings` 객체λ₯Ό 전달해야 ν•©λ‹ˆλ‹€.
8080
> 이 κ°μ²΄λŠ” λ‹€μŒμ˜ ν”„λ‘œνΌν‹°λ₯Ό κ°–κ³  μžˆμŠ΅λ‹ˆλ‹€:
@@ -85,7 +85,7 @@ _λ¬Έμ„œ_
8585
>
8686
> 3 - color: 선택적 λ¬Έμžμ—΄, 예. '#ff00ff'
8787
88-
_μ½”λ“œ_
88+
*μ½”λ“œ*
8989

9090
```ts
9191
greet({
@@ -94,7 +94,7 @@ greet({
9494
});
9595
```
9696

97-
_μ„ μ–Έ_
97+
*μ„ μ–Έ*
9898

9999
ν”„λ‘œνΌν‹°λ₯Ό κ°–λŠ” νƒ€μž…μ„ μ •μ˜ν•˜κΈ° μœ„ν•΄ `interface`λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
100100

@@ -110,11 +110,11 @@ declare function greet(setting: GreetingSettings): void;
110110

111111
## μž¬μ‚¬μš© κ°€λŠ₯ν•œ νƒ€μž… (νƒ€μž… 별칭) (Reusable Types (Type Aliases))
112112

113-
_λ¬Έμ„œ_
113+
*λ¬Έμ„œ*
114114

115115
> 인사말이 μ˜ˆμƒλ˜λŠ” μ–΄λŠ κ³³μ—λ‚˜, `string`, `string`을 λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜, λ˜λŠ” `Greeter` μΈμŠ€ν„΄μŠ€λ₯Ό 전달할 수 μžˆμŠ΅λ‹ˆλ‹€.
116116
117-
_μ½”λ“œ_
117+
*μ½”λ“œ*
118118

119119
```ts
120120
function getGreeting() {
@@ -127,7 +127,7 @@ greet(getGreeting);
127127
greet(new MyGreeter());
128128
```
129129

130-
_μ„ μ–Έ_
130+
*μ„ μ–Έ*
131131

132132
νƒ€μž…μ— λŒ€ν•œ μ•½μΉ­μœΌλ‘œ νƒ€μž… 별칭을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€:
133133

@@ -139,20 +139,20 @@ declare function greet(g: GreetingLike): void;
139139

140140
## νƒ€μž… κ΅¬μ‘°ν™”ν•˜κΈ° (Organizing Types)
141141

142-
_λ¬Έμ„œ_
142+
*λ¬Έμ„œ*
143143

144144
> `greeter` κ°μ²΄λŠ” νŒŒμΌμ— 둜그λ₯Ό μž‘μ„±ν•˜κ±°λ‚˜ κ²½κ³  창을 λ„μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€.
145145
> 둜그 μ˜΅μ…˜μ„ `.log(...)` 내뢀에, κ²½κ³  μ°½ μ˜΅μ…˜μ„ `.alert(...)` 내뢀에 전달할 수 μžˆμŠ΅λ‹ˆλ‹€.
146146
147-
_μ½”λ“œ_
147+
*μ½”λ“œ*
148148

149149
```ts
150150
const g = new Greeter("Hello");
151151
g.log({ verbose: true });
152152
g.alert({ modal: false, title: "Current Greeting" });
153153
```
154154

155-
_μ„ μ–Έ_
155+
*μ„ μ–Έ*
156156

157157
νƒ€μž…μ„ κ΅¬μ‘°ν™”ν•˜κΈ° μœ„ν•΄ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
158158

@@ -187,11 +187,11 @@ declare namespace GreetingLib.Options {
187187

188188
## 클래슀 (Classes)
189189

190-
_λ¬Έμ„œ_
190+
*λ¬Έμ„œ*
191191

192192
> `Greeter` 객체λ₯Ό μΈμŠ€ν„΄μŠ€ν™”ν•΄μ„œ greeterλ₯Ό μƒμ„±ν•˜κ±°λ‚˜, 이 객체λ₯Ό μƒμ†ν•΄μ„œ μ»€μŠ€ν…€ greeterλ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.
193193
194-
_μ½”λ“œ_
194+
*μ½”λ“œ*
195195

196196
```ts
197197
const myGreeter = new Greeter("hello, world");
@@ -205,7 +205,7 @@ class SpecialGreeter extends Greeter {
205205
}
206206
```
207207

208-
_μ„ μ–Έ_
208+
*μ„ μ–Έ*
209209

210210
클래슀 ν˜Ήμ€ 클래슀-같은 객체λ₯Ό μ„€λͺ…ν•˜κΈ° μœ„ν•΄ `declare class`λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
211211
ν΄λž˜μŠ€λŠ” μƒμ„±μž 뿐만 μ•„λ‹ˆλΌ ν”„λ‘œνΌν‹°μ™€ λ©”μ„œλ“œλ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
@@ -221,17 +221,17 @@ declare class Greeter {
221221

222222
## μ „μ—­ λ³€μˆ˜ (Global Variables)
223223

224-
_λ¬Έμ„œ_
224+
*λ¬Έμ„œ*
225225

226226
> μ „μ—­ λ³€μˆ˜ `foo`λŠ” μ‘΄μž¬ν•˜λŠ” μœ„μ ―μ˜ 수λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
227227
228-
_μ½”λ“œ_
228+
*μ½”λ“œ*
229229

230230
```ts
231231
console.log("Half the number of widgets is " + (foo / 2));
232232
```
233233

234-
_μ„ μ–Έ_
234+
*μ„ μ–Έ*
235235

236236
λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κΈ° μœ„ν•΄ `declare var`λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
237237
λ§Œμ•½ λ³€μˆ˜κ°€ 읽기-μ „μš©μ΄λΌλ©΄, `declare const`λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
@@ -244,17 +244,17 @@ declare var foo: number;
244244

245245
## μ „μ—­ ν•¨μˆ˜ (Global Functions)
246246

247-
_λ¬Έμ„œ_
247+
*λ¬Έμ„œ*
248248

249249
> μ‚¬μš©μžμ—κ²Œ 인사말을 보여주기 μœ„ν•΄ `greet` ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.
250250
251-
_μ½”λ“œ_
251+
*μ½”λ“œ*
252252

253253
```ts
254254
greet("hello, world");
255255
```
256256

257-
_μ„ μ–Έ_
257+
*μ„ μ–Έ*
258258

259259
ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜κΈ° μœ„ν•΄ `declare function`을 μ‚¬μš©ν•˜μ„Έμš”.
260260

β€Ždocs/documentation/ko/get-started/TS for Functional Programmers.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ type Size = [number, number];
366366
let x: Size = [101.1, 999.9];
367367
```
368368

369-
`newtype`κ³Ό κ°€μž₯ μœ μ‚¬ν•œ 것은 _νƒœκ·Έλœ ꡐ차 νƒ€μž…(tagged intersection)_ μž…λ‹ˆλ‹€:
369+
`newtype`κ³Ό κ°€μž₯ μœ μ‚¬ν•œ 것은 *νƒœκ·Έλœ ꡐ차 νƒ€μž…(tagged intersection)* μž…λ‹ˆλ‹€:
370370

371371
```ts
372372
type FString = string & { __compileTimeOnly: any };
@@ -462,7 +462,7 @@ TypeScriptλŠ” 일반적으둜 인자 νƒ€μž…μ— κΈ°λ°˜ν•˜μ—¬ ν˜ΈμΆœλ‘œλΆ€ν„° 타
462462
μ™œλƒν•˜λ©΄ TypeScriptλŠ” ꡬ쑰적이기 λ•Œλ¬Έμ—, 이름 기반의 μ‹œμŠ€ν…œλ§ŒνΌ νƒ€μž… 맀개 λ³€μˆ˜λ₯Ό ν•„μš”λ‘œ
463463
ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 특히 ν•¨μˆ˜λ₯Ό λ‹€ν˜•μ„±μœΌλ‘œ λ§Œλ“€
464464
ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€. νƒ€μž… λ§€κ°œλ³€μˆ˜λŠ” λ§€κ°œλ³€μˆ˜λ₯Ό 같은 νƒ€μž…μœΌλ‘œ
465-
μ œν•œν•˜λŠ” κ²ƒμ²˜λŸΌ νƒ€μž… 정보λ₯Ό _μ „νŒŒν•˜λŠ”λ°λ§Œ_
465+
μ œν•œν•˜λŠ” κ²ƒμ²˜λŸΌ νƒ€μž… 정보λ₯Ό *μ „νŒŒν•˜λŠ”λ°λ§Œ*
466466
μ“°μ—¬μ•Ό ν•©λ‹ˆλ‹€:
467467

468468
```ts
@@ -534,7 +534,7 @@ function g() { }
534534
## `readonly` 와 `const` (`readonly` and `const`)
535535

536536
JavaScriptμ—μ„œ, μˆ˜μ • κ°€λŠ₯함이 κΈ°λ³Έμ΄μ§€λ§Œ,
537-
_μ°Έμ‘°_κ°€ μˆ˜μ • λΆˆκ°€λŠ₯함을 μ„ μ–Έν•˜κΈ° μœ„ν•΄ `const`둜 λ³€μˆ˜λ₯Ό μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.
537+
*μ°Έμ‘°*κ°€ μˆ˜μ • λΆˆκ°€λŠ₯함을 μ„ μ–Έν•˜κΈ° μœ„ν•΄ `const`둜 λ³€μˆ˜λ₯Ό μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.
538538
μ°Έμ‘° λŒ€μƒμ€ μ—¬μ „νžˆ μˆ˜μ • κ°€λŠ₯ν•©λ‹ˆλ‹€:
539539

540540
```js

β€Ždocs/documentation/ko/get-started/TS for JS Programmers.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ JavaScriptμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” 적은 μ’…λ₯˜μ˜ μ›μ‹œ νƒ€μž…μ΄ 이미
137137
type MyBool = true | false;
138138
```
139139

140-
_μ°Έκ³ :_ `MyBool`μœ„μ— 마우슀λ₯Ό μ˜¬λ¦°λ‹€λ©΄, `boolean`으둜 λΆ„λ₯˜λœ 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€ - ꡬ쑰적 νƒ€μž… μ‹œμŠ€ν…œμ˜ ν”„λ‘œνΌν‹°λ©°, λ‚˜μ€‘μ— μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.
140+
*μ°Έκ³ :* `MyBool`μœ„μ— 마우슀λ₯Ό μ˜¬λ¦°λ‹€λ©΄, `boolean`으둜 λΆ„λ₯˜λœ 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€ - ꡬ쑰적 νƒ€μž… μ‹œμŠ€ν…œμ˜ ν”„λ‘œνΌν‹°λ©°, λ‚˜μ€‘μ— μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.
141141

142142
μœ λ‹ˆμ–Έ νƒ€μž…μ΄ κ°€μž₯ 많이 μ‚¬μš©λœ 사둀 쀑 ν•˜λ‚˜λŠ” 값이 λ‹€μŒκ³Ό 같이 ν—ˆμš©λ˜λŠ” `string` λ˜λŠ” `number`의 [λ¦¬ν„°λŸ΄](/docs/handbook/literal-types.html)집합을 μ„€λͺ…ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€:
143143

@@ -214,7 +214,7 @@ backpack.add(23);
214214

215215
## ꡬ쑰적 νƒ€μž… μ‹œμŠ€ν…œ (Structural Type System)
216216

217-
TypeScript의 핡심 원칙 쀑 ν•˜λ‚˜λŠ” νƒ€μž… 검사가 값이 μžˆλŠ” _ν˜•νƒœ_에 μ§‘μ€‘ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
217+
TypeScript의 핡심 원칙 쀑 ν•˜λ‚˜λŠ” νƒ€μž… 검사가 값이 μžˆλŠ” *ν˜•νƒœ*에 μ§‘μ€‘ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
218218
μ΄λŠ” λ•Œλ•Œλ‘œ "덕 타이핑(duck typing)" λ˜λŠ” "ꡬ쑰적 타이핑" 이라고 λΆˆλ¦½λ‹ˆλ‹€.
219219

220220
ꡬ쑰적 νƒ€μž… μ‹œμŠ€ν…œμ—μ„œ 두 객체가 같은 ν˜•νƒœλ₯Ό κ°€μ§€λ©΄ 같은 κ²ƒμœΌλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€.

β€Ždocs/documentation/ko/get-started/TS for OOPers.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ TypeScriptλŠ” μ΄λŸ¬ν•œ κ°œλ°œμžμ—κ²Œ μΉœμˆ™ν•œ κΈ°λŠ₯을 많이 μ œκ³΅ν•˜μ§€
1717
λ§Œμ•½ JavaScript에 이미 μ΅μˆ™ν•˜μ§€λ§Œ 주둜 Javaλ˜λŠ” C#을 μ‚¬μš©ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ¨ΈλΌλ©΄, 이 μ†Œκ°œ νŽ˜μ΄μ§€λŠ” ν”νžˆ μ ‘ν•  수 μžˆλŠ” μ˜€ν•΄μ™€ 함정에 λŒ€ν•œ μ„€λͺ…에 도움을 쀄 수 μžˆμŠ΅λ‹ˆλ‹€.
1818
TypeScript λͺ¨λΈμ΄ μœ ν˜•ν™”ν•˜λŠ” 방법 쀑 μΌλΆ€λŠ” Javaλ‚˜ C#κ³Ό μƒλ‹Ήνžˆ λ‹€λ₯΄λ©°, TypeScriptλ₯Ό ν•™μŠ΅ν•˜λŠ” 데에 μžˆμ–΄ 이 뢀뢄을 염두에 λ‘λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.
1919

20-
λ§Œμ•½ JavaScriptλ₯Ό 처음 μ ‘ν•˜λŠ” Javaλ‚˜ C# ν”„λ‘œκ·Έλž˜λ¨ΈλΌλ©΄, JavaScript의 λŸ°νƒ€μž„ λ™μž‘μ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ μš°μ„ μ μœΌλ‘œ νƒ€μž…μ„ _μ œμ™Έν•œ_ JavaScript의 일뢀뢄을 λ°°μš°λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
21-
TypeScriptλŠ” μ½”λ“œλ₯Ό _μ‹€ν–‰ν•˜λŠ”_ 방식을 λ°”κΎΈμ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, μ‹€μ œλ‘œ 무언가 λ™μž‘ν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ—¬μ „νžˆ JavaScriptκ°€ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€ λ°°μ›Œμ•Ό ν•©λ‹ˆλ‹€!
20+
λ§Œμ•½ JavaScriptλ₯Ό 처음 μ ‘ν•˜λŠ” Javaλ‚˜ C# ν”„λ‘œκ·Έλž˜λ¨ΈλΌλ©΄, JavaScript의 λŸ°νƒ€μž„ λ™μž‘μ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ μš°μ„ μ μœΌλ‘œ νƒ€μž…μ„ *μ œμ™Έν•œ* JavaScript의 일뢀뢄을 λ°°μš°λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
21+
TypeScriptλŠ” μ½”λ“œλ₯Ό *μ‹€ν–‰ν•˜λŠ”* 방식을 λ°”κΎΈμ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, μ‹€μ œλ‘œ 무언가 λ™μž‘ν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ—¬μ „νžˆ JavaScriptκ°€ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€ λ°°μ›Œμ•Ό ν•©λ‹ˆλ‹€!
2222

2323
TypeScriptκ°€ JavaScript와 λ™μΌν•œ *λŸ°νƒ€μž„*을 μ‚¬μš©ν•˜λ―€λ‘œ, νŠΉμ •ν•œ λŸ°νƒ€μž„ λ™μž‘(λ¬Έμžμ—΄μ„ 숫자둜 λ³€ν™˜ν•˜κΈ°, κ²½κ³  ν‘œμ‹œ, λ””μŠ€ν¬μ— 파일 μ“°κΈ° λ“±)을 κ΅¬ν˜„ν•˜λ €λŠ” λ¦¬μ†ŒμŠ€λŠ” 항상 TypeScript ν”„λ‘œκ·Έλž¨μ— λ˜‘κ°™μ΄ 잘 μ μš©λœλ‹€λŠ” 점을 κΈ°μ–΅ν•˜λŠ” 것은 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.
2424
TypeScript에 νŠΉμ •λœ λ¦¬μ†ŒμŠ€μ—λ§Œ μ œν•œμ„ 두지 λ§ˆμ‹­μ‹œμ˜€!
2525

2626
## 클래슀 λ‹€μ‹œ μƒκ°ν•˜κΈ° (Rethinking the Class)
2727

28-
C#κ³Ό JavaλŠ” _의무적 OOP_ 언어라고 λΆ€λ¦…λ‹ˆλ‹€.
29-
μ΄λŸ¬ν•œ μ–Έμ–΄μ—μ„œ *클래슀*λŠ” μ½”λ“œ κ΅¬μ„±μ˜ κΈ°λ³Έ λ‹¨μœ„μΌ 뿐만 μ•„λ‹ˆλΌ λŸ°νƒ€μž„ μ‹œ λͺ¨λ“  데이터 _그리고_ λ™μž‘μ˜ 기본적인 μ»¨ν…Œμ΄λ„ˆμž…λ‹ˆλ‹€.
28+
C#κ³Ό JavaλŠ” *의무적 OOP* 언어라고 λΆ€λ¦…λ‹ˆλ‹€.
29+
μ΄λŸ¬ν•œ μ–Έμ–΄μ—μ„œ *클래슀*λŠ” μ½”λ“œ κ΅¬μ„±μ˜ κΈ°λ³Έ λ‹¨μœ„μΌ 뿐만 μ•„λ‹ˆλΌ λŸ°νƒ€μž„ μ‹œ λͺ¨λ“  데이터 *그리고* λ™μž‘μ˜ 기본적인 μ»¨ν…Œμ΄λ„ˆμž…λ‹ˆλ‹€.
3030
κΈ°λŠ₯κ³Ό 데이터λ₯Ό μ „λΆ€ ν΄λž˜μŠ€μ— 담도둝 κ°•μ œν•˜λŠ” 것은 일뢀 λ¬Έμ œμ— λŒ€ν•΄μ„  쒋은 도메인 λͺ¨λΈμ΄ 될 수 μžˆμ§€λ§Œ, λͺ¨λ“  도메인이 μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ ν‘œν˜„λ  *ν•„μš”*λŠ” μ—†μŠ΅λ‹ˆλ‹€.
3131

3232
### 자유둜운 ν•¨μˆ˜μ™€ 데이터 (Free Functions and Data)
@@ -66,7 +66,7 @@ C#κ³Ό Javaμ—μ„œ μ£Όμ–΄μ§„ κ°’κ³Ό κ°μ²΄λŠ” β€˜null’, μ›μ‹œ νƒ€μž…, λ˜λŠ”
6666
C# λ˜λŠ” Javaμ—μ„œ λŸ°νƒ€μž„ νƒ€μž…κ³Ό ν•΄λ‹Ή 컴파일 νƒ€μž„ μ„ μ–Έ μ‚¬μ΄μ˜ μΌλŒ€μΌ λŒ€μ‘κ΄€κ³„λŠ” μ€‘μš”ν•©λ‹ˆλ‹€.
6767

6868
TypeScriptμ—μ„œ νƒ€μž…μ€ κ³΅ν†΅μ˜ 무언가λ₯Ό κ³΅μœ ν•˜λŠ” *κ°’μ˜ μ§‘ν•©*으둜 μƒκ°ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
69-
νƒ€μž…μ€ 집합에 λΆˆκ³Όν•˜κΈ° λ•Œλ¬Έμ—, νŠΉμ •ν•œ 값은 λ™μ‹œμ— _μˆ˜λ§Žμ€_ 집합에 속할 수 μžˆμŠ΅λ‹ˆλ‹€.
69+
νƒ€μž…μ€ 집합에 λΆˆκ³Όν•˜κΈ° λ•Œλ¬Έμ—, νŠΉμ •ν•œ 값은 λ™μ‹œμ— *μˆ˜λ§Žμ€* 집합에 속할 수 μžˆμŠ΅λ‹ˆλ‹€.
7070

7171
일단 νƒ€μž…μ„ μ§‘ν•©μœΌλ‘œ μƒκ°ν•˜κΈ° μ‹œμž‘ν•˜λ©΄, νŠΉμ • 연산이 맀우 μžμ—°μŠ€λŸ¬μ›Œμ§‘λ‹ˆλ‹€.
7272
예λ₯Ό λ“€μ–΄, C#μ—μ„œλŠ” β€˜string’과 β€˜int’ *λ‘˜ λ‹€ κ°€λŠ₯ν•œ* νƒ€μž…μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 이 값을 인자둜 μ „λ‹¬ν•˜λŠ” 것은 μ΄μƒν•©λ‹ˆλ‹€.
@@ -79,7 +79,7 @@ TypeScriptλŠ” 집합둠에 μ˜κ±°ν•΄ νƒ€μž…μ„ μ΄μš©ν•˜λŠ” μ—¬λŸ¬ 방법을 제
7979

8080
### μ‚­μ œλœ ꡬ쑰적 νƒ€μž… (Erased Structural Types)
8181

82-
TypeScriptμ—μ„œ, κ°μ²΄λŠ” μ •ν™•νžˆ 단일 νƒ€μž…μ΄ _μ•„λ‹™λ‹ˆλ‹€_.
82+
TypeScriptμ—μ„œ, κ°μ²΄λŠ” μ •ν™•νžˆ 단일 νƒ€μž…μ΄ *μ•„λ‹™λ‹ˆλ‹€*.
8383
예λ₯Ό λ“€μ–΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œμ‘±ν•˜λŠ” 객체λ₯Ό 생성할 λ•Œ, λ‘˜ μ‚¬μ΄μ˜ 선언적인 관계가 없더라도 ν•΄λ‹Ή μΈν„°νŽ˜μ΄μŠ€κ°€ μ˜ˆμƒλ˜λŠ” 곳에 ν•΄λ‹Ή 객체λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
8484

8585
```
@@ -109,21 +109,21 @@ printPoint(obj);
109109
printName(obj);
110110
```
111111

112-
TypeScript의 νƒ€μž… μ‹œμŠ€ν…œμ€ λͺ…λͺ©μ΄ μ•„λ‹Œ _ꡬ쑰적_μž…λ‹ˆλ‹€: `obj`λŠ” 숫자인 `x`와 `y` ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§€κ³  μžˆμœΌλ―€λ‘œ, `Pointlike`둜써 μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.
112+
TypeScript의 νƒ€μž… μ‹œμŠ€ν…œμ€ λͺ…λͺ©μ΄ μ•„λ‹Œ *ꡬ쑰적*μž…λ‹ˆλ‹€: `obj`λŠ” 숫자인 `x`와 `y` ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§€κ³  μžˆμœΌλ―€λ‘œ, `Pointlike`둜써 μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.
113113
νƒ€μž… κ°„μ˜ κ΄€κ³„λŠ” νŠΉμ • κ΄€κ³„λ‘œ μ„ μ–Έλ˜μ—ˆλŠ”μ§€κ°€ μ•„λ‹Œ, ν¬ν•¨λœ ν”„λ‘œνΌν‹°μ— μ˜ν•΄ κ²°μ •λ©λ‹ˆλ‹€.
114114

115-
TypeScript의 νƒ€μž… μ‹œμŠ€ν…œμ€ λ˜ν•œ _κ΅¬μ²΄ν™”λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€_: λŸ°νƒ€μž„μ— `obj`κ°€ `Pointlike`μž„μ„ μ•Œλ €μ£Όμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
116-
사싀, `Pointlike` νƒ€μž…μ€ λŸ°νƒ€μž„μ— _μ–΄λ–€ ν˜•νƒœλ‘œλ„_ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
115+
TypeScript의 νƒ€μž… μ‹œμŠ€ν…œμ€ λ˜ν•œ *κ΅¬μ²΄ν™”λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€*: λŸ°νƒ€μž„μ— `obj`κ°€ `Pointlike`μž„μ„ μ•Œλ €μ£Όμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
116+
사싀, `Pointlike` νƒ€μž…μ€ λŸ°νƒ€μž„μ— *μ–΄λ–€ ν˜•νƒœλ‘œλ„* μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
117117

118-
_μ§‘ν•©μœΌλ‘œμ„œμ˜ νƒ€μž…_ κ°œλ…μœΌλ‘œ 보면, `obj`λ₯Ό `Pointlike` κ°’ μ§‘ν•©μ΄λ‚˜ `Named` κ°’ μ§‘ν•©μ˜ λ©€λ²„λ‘œ κ°„μ£Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.
118+
*μ§‘ν•©μœΌλ‘œμ„œμ˜ νƒ€μž…* κ°œλ…μœΌλ‘œ 보면, `obj`λ₯Ό `Pointlike` κ°’ μ§‘ν•©μ΄λ‚˜ `Named` κ°’ μ§‘ν•©μ˜ λ©€λ²„λ‘œ κ°„μ£Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.
119119

120120
### ꡬ쑰적 νƒ€μž…ν™”μ˜ κ²°κ³Ό (Consequences of Structural Typing)
121121

122122
객체지ν–₯ ν”„λ‘œκ·Έλž˜λ¨ΈλŠ” μ’…μ’… ꡬ쑰적 νƒ€μž…ν™”μ˜ 두 κ°€μ§€ 츑면에 놀라곀 ν•©λ‹ˆλ‹€.
123123

124124
#### 빈 νƒ€μž… (Empty Types)
125125

126-
첫 번째둜 _빈 νƒ€μž…_은 μ˜ˆμƒμ„ λ¬΄μ‹œν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€:
126+
첫 번째둜 *빈 νƒ€μž…*은 μ˜ˆμƒμ„ λ¬΄μ‹œν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€:
127127

128128
```
129129
class Empty {}
@@ -138,11 +138,11 @@ fn({ k: 10 });
138138

139139
TypeScriptλŠ” μ£Όμ–΄μ§„ μΈμˆ˜κ°€ μœ νš¨ν•œ `Empty`인지 ν™•μΈν•˜μ—¬ `fn`의 호좜이 μœ νš¨ν•œμ§€λ₯Ό κ²€μ‚¬ν•©λ‹ˆλ‹€
140140
`{ k: 10 }`κ³Ό `class Empty { }`의 _ꡬ쑰λ₯Ό ν™•μΈν•˜μ—¬ μœ νš¨μ„±μ„ κ²€μ‚¬ν•©λ‹ˆλ‹€.
141-
`Empty`에 ν”„λ‘œνΌν‹°κ°€ μ—†μœΌλ―€λ‘œ `Empty`κ°€ μˆ˜ν–‰ν•˜λŠ” _λͺ¨λ“ _ ν”„λ‘œνΌν‹°κ°€ `{ k: 10 }`에 μ†ν•΄μžˆμŠ΅λ‹ˆλ‹€.
141+
`Empty`에 ν”„λ‘œνΌν‹°κ°€ μ—†μœΌλ―€λ‘œ `Empty`κ°€ μˆ˜ν–‰ν•˜λŠ” *λͺ¨λ“ * ν”„λ‘œνΌν‹°κ°€ `{ k: 10 }`에 μ†ν•΄μžˆμŠ΅λ‹ˆλ‹€.
142142
κ·ΈλŸ¬λ―€λ‘œ, μœ νš¨ν•œ ν˜ΈμΆœμž…λ‹ˆλ‹€:
143143

144144
λ†€λžμ§€λ§Œ, μ΅œμ’…μ μœΌλ‘œ λͺ…λͺ©μ μΈ 객체지ν–₯ν”„λ‘œκ·Έλž˜λ° 언어와 맀우 λΉ„μŠ·ν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€.
145-
νŒŒμƒ ν΄λž˜μŠ€μ™€ νŒŒμƒ 클래슀의 κΈ°λ³Έ μ‚¬μ΄μ˜ μžμ—°μŠ€λŸ¬μš΄ ν•˜μœ„ νƒ€μž… 관계가 파괴되기 λ•Œλ¬Έμ—, ν•˜μœ„ ν΄λž˜μŠ€λŠ” _μ‚­μ œ_ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
145+
νŒŒμƒ ν΄λž˜μŠ€μ™€ νŒŒμƒ 클래슀의 κΈ°λ³Έ μ‚¬μ΄μ˜ μžμ—°μŠ€λŸ¬μš΄ ν•˜μœ„ νƒ€μž… 관계가 파괴되기 λ•Œλ¬Έμ—, ν•˜μœ„ ν΄λž˜μŠ€λŠ” *μ‚­μ œ*ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
146146
ꡬ쑰적 νƒ€μž… μ‹œμŠ€ν…œμ€ ν˜Έν™˜ κ°€λŠ₯ν•œ μœ ν˜•μ˜ 속성을 κ°–λŠ” μΈ‘λ©΄μ—μ„œ ν•˜μœ„ νƒ€μž…μ„ μ„€λͺ…ν•˜λ―€λ‘œ μœ„μ˜ 관계λ₯Ό μ•”μ‹œμ μœΌλ‘œ κ΅¬λ³„ν•©λ‹ˆλ‹€
147147

148148
#### λ™μΌν•œ νƒ€μž… (Identical Types)
@@ -165,7 +165,7 @@ class Golfer {
165165
let w: Car = new Golfer();
166166
```
167167

168-
λ‹€μ‹œ λ§ν•˜μ§€λ§Œ, 였λ₯˜κ°€ μ•„λ‹Œ μ΄μœ λŠ” 클래슀의 _ꡬ쑰_κ°€ λ™μΌν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
168+
λ‹€μ‹œ λ§ν•˜μ§€λ§Œ, 였λ₯˜κ°€ μ•„λ‹Œ μ΄μœ λŠ” 클래슀의 *ꡬ쑰*κ°€ λ™μΌν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
169169
잠재적인 ν˜Όλž€μ˜ μ΄μœ κ°€ 될 μˆ˜λ„ μžˆκ² μ§€λ§Œ, 사싀 μƒκ΄€μ—†λŠ” ν΄λž˜μŠ€κ°€ λ™μΌν•œ κ²½μš°λŠ” μΌλ°˜μ μ΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
170170

171171
차후에 클래슀 μ±•ν„°μ—μ„œ ν΄λž˜μŠ€κ°€ μ„œλ‘œ μ–΄λ–»κ²Œ κ΄€λ ¨λ˜λŠ”μ§€μ— λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³Ό κ²ƒμž…λ‹ˆλ‹€.

0 commit comments

Comments
Β (0)