@@ -17,16 +17,16 @@ TypeScriptλ μ΄λ¬ν κ°λ°μμκ² μΉμν κΈ°λ₯μ λ§μ΄ μ 곡νμ§
17
17
λ§μ½ JavaScriptμ μ΄λ―Έ μ΅μνμ§λ§ μ£Όλ‘ Javaλλ C#μ μ¬μ©νλ νλ‘κ·Έλλ¨ΈλΌλ©΄, μ΄ μκ° νμ΄μ§λ νν μ ν μ μλ μ€ν΄μ ν¨μ μ λν μ€λͺ
μ λμμ μ€ μ μμ΅λλ€.
18
18
TypeScript λͺ¨λΈμ΄ μ νννλ λ°©λ² μ€ μΌλΆλ Javaλ C#κ³Ό μλΉν λ€λ₯΄λ©°, TypeScriptλ₯Ό νμ΅νλ λ°μ μμ΄ μ΄ λΆλΆμ μΌλμ λλ κ²μ΄ μ€μν©λλ€.
19
19
20
- λ§μ½ JavaScriptλ₯Ό μ²μ μ νλ Javaλ C# νλ‘κ·Έλλ¨ΈλΌλ©΄, JavaScriptμ λ°νμ λμμ μ΄ν΄νκΈ° μν΄ μ°μ μ μΌλ‘ νμ
μ _ μ μΈν _ JavaScriptμ μΌλΆλΆμ λ°°μ°λ κ²μ΄ μ’μ΅λλ€.
21
- TypeScriptλ μ½λλ₯Ό _ μ€ννλ _ λ°©μμ λ°κΎΈμ§ μκΈ° λλ¬Έμ, μ€μ λ‘ λ¬΄μΈκ° λμνλ μ½λλ₯Ό μμ±νκΈ° μν΄μλ μ¬μ ν JavaScriptκ° μ΄λ»κ² μλνλμ§ λ°°μμΌ ν©λλ€!
20
+ λ§μ½ JavaScriptλ₯Ό μ²μ μ νλ Javaλ C# νλ‘κ·Έλλ¨ΈλΌλ©΄, JavaScriptμ λ°νμ λμμ μ΄ν΄νκΈ° μν΄ μ°μ μ μΌλ‘ νμ
μ * μ μΈν * JavaScriptμ μΌλΆλΆμ λ°°μ°λ κ²μ΄ μ’μ΅λλ€.
21
+ TypeScriptλ μ½λλ₯Ό * μ€ννλ * λ°©μμ λ°κΎΈμ§ μκΈ° λλ¬Έμ, μ€μ λ‘ λ¬΄μΈκ° λμνλ μ½λλ₯Ό μμ±νκΈ° μν΄μλ μ¬μ ν JavaScriptκ° μ΄λ»κ² μλνλμ§ λ°°μμΌ ν©λλ€!
22
22
23
23
TypeScriptκ° JavaScriptμ λμΌν * λ°νμ* μ μ¬μ©νλ―λ‘, νΉμ ν λ°νμ λμ(λ¬Έμμ΄μ μ«μλ‘ λ³ννκΈ°, κ²½κ³ νμ, λμ€ν¬μ νμΌ μ°κΈ° λ±)μ ꡬννλ €λ 리μμ€λ νμ TypeScript νλ‘κ·Έλ¨μ λκ°μ΄ μ μ μ©λλ€λ μ μ κΈ°μ΅νλ κ²μ λ§€μ° μ€μν©λλ€.
24
24
TypeScriptμ νΉμ λ 리μμ€μλ§ μ νμ λμ§ λ§μμμ€!
25
25
26
26
## ν΄λμ€ λ€μ μκ°νκΈ° (Rethinking the Class)
27
27
28
- C#κ³Ό Javaλ _ μ무μ OOP _ μΈμ΄λΌκ³ λΆλ¦
λλ€.
29
- μ΄λ¬ν μΈμ΄μμ * ν΄λμ€* λ μ½λ ꡬμ±μ κΈ°λ³Έ λ¨μμΌ λΏλ§ μλλΌ λ°νμ μ λͺ¨λ λ°μ΄ν° _ κ·Έλ¦¬κ³ _ λμμ κΈ°λ³Έμ μΈ μ»¨ν
μ΄λμ
λλ€.
28
+ C#κ³Ό Javaλ * μ무μ OOP * μΈμ΄λΌκ³ λΆλ¦
λλ€.
29
+ μ΄λ¬ν μΈμ΄μμ * ν΄λμ€* λ μ½λ ꡬμ±μ κΈ°λ³Έ λ¨μμΌ λΏλ§ μλλΌ λ°νμ μ λͺ¨λ λ°μ΄ν° * κ·Έλ¦¬κ³ * λμμ κΈ°λ³Έμ μΈ μ»¨ν
μ΄λμ
λλ€.
30
30
κΈ°λ₯κ³Ό λ°μ΄ν°λ₯Ό μ λΆ ν΄λμ€μ λ΄λλ‘ κ°μ νλ κ²μ μΌλΆ λ¬Έμ μ λν΄μ μ’μ λλ©μΈ λͺ¨λΈμ΄ λ μ μμ§λ§, λͺ¨λ λλ©μΈμ΄ μ΄λ¬ν λ°©μμΌλ‘ ννλ * νμ* λ μμ΅λλ€.
31
31
32
32
### μμ λ‘μ΄ ν¨μμ λ°μ΄ν° (Free Functions and Data)
@@ -66,7 +66,7 @@ C#κ³Ό Javaμμ μ£Όμ΄μ§ κ°κ³Ό κ°μ²΄λ βnullβ, μμ νμ
, λλ
66
66
C# λλ Javaμμ λ°νμ νμ
κ³Ό ν΄λΉ μ»΄νμΌ νμ μ μΈ μ¬μ΄μ μΌλμΌ λμκ΄κ³λ μ€μν©λλ€.
67
67
68
68
TypeScriptμμ νμ
μ 곡ν΅μ 무μΈκ°λ₯Ό 곡μ νλ * κ°μ μ§ν©* μΌλ‘ μκ°νλ κ²μ΄ μ’μ΅λλ€.
69
- νμ
μ μ§ν©μ λΆκ³ΌνκΈ° λλ¬Έμ, νΉμ ν κ°μ λμμ _ μλ§μ _ μ§ν©μ μν μ μμ΅λλ€.
69
+ νμ
μ μ§ν©μ λΆκ³ΌνκΈ° λλ¬Έμ, νΉμ ν κ°μ λμμ * μλ§μ * μ§ν©μ μν μ μμ΅λλ€.
70
70
71
71
μΌλ¨ νμ
μ μ§ν©μΌλ‘ μκ°νκΈ° μμνλ©΄, νΉμ μ°μ°μ΄ λ§€μ° μμ°μ€λ¬μμ§λλ€.
72
72
μλ₯Ό λ€μ΄, C#μμλ βstringβκ³Ό βintβ * λ λ€ κ°λ₯ν* νμ
μ΄ μ‘΄μ¬νμ§ μκΈ° λλ¬Έμ μ΄ κ°μ μΈμλ‘ μ λ¬νλ κ²μ μ΄μν©λλ€.
@@ -79,7 +79,7 @@ TypeScriptλ μ§ν©λ‘ μ μκ±°ν΄ νμ
μ μ΄μ©νλ μ¬λ¬ λ°©λ²μ μ
79
79
80
80
### μμ λ ꡬ쑰μ νμ
(Erased Structural Types)
81
81
82
- TypeScriptμμ, κ°μ²΄λ μ νν λ¨μΌ νμ
μ΄ _ μλλλ€ _ .
82
+ TypeScriptμμ, κ°μ²΄λ μ νν λ¨μΌ νμ
μ΄ * μλλλ€ * .
83
83
μλ₯Ό λ€μ΄ μΈν°νμ΄μ€λ₯Ό λ§μ‘±νλ κ°μ²΄λ₯Ό μμ±ν λ, λ μ¬μ΄μ μ μΈμ μΈ κ΄κ³κ° μλλΌλ ν΄λΉ μΈν°νμ΄μ€κ° μμλλ κ³³μ ν΄λΉ κ°μ²΄λ₯Ό μ¬μ©ν μ μμ΅λλ€.
84
84
85
85
```
@@ -109,21 +109,21 @@ printPoint(obj);
109
109
printName(obj);
110
110
```
111
111
112
- TypeScriptμ νμ
μμ€ν
μ λͺ
λͺ©μ΄ μλ _ ꡬ쑰μ _μ
λλ€ : ` obj ` λ μ«μμΈ ` x ` μ ` y ` νλ‘νΌν°λ₯Ό κ°μ§κ³ μμΌλ―λ‘, ` Pointlike ` λ‘μ¨ μ¬μ©λ μ μμ΅λλ€.
112
+ TypeScriptμ νμ
μμ€ν
μ λͺ
λͺ©μ΄ μλ * ꡬ쑰μ * μ
λλ€ : ` obj ` λ μ«μμΈ ` x ` μ ` y ` νλ‘νΌν°λ₯Ό κ°μ§κ³ μμΌλ―λ‘, ` Pointlike ` λ‘μ¨ μ¬μ©λ μ μμ΅λλ€.
113
113
νμ
κ°μ κ΄κ³λ νΉμ κ΄κ³λ‘ μ μΈλμλμ§κ° μλ, ν¬ν¨λ νλ‘νΌν°μ μν΄ κ²°μ λ©λλ€.
114
114
115
- TypeScriptμ νμ
μμ€ν
μ λν _ ꡬ체νλμ§ μμμ΅λλ€ _ : λ°νμμ ` obj ` κ° ` Pointlike ` μμ μλ €μ£Όμ§ μμ΅λλ€.
116
- μ¬μ€, ` Pointlike ` νμ
μ λ°νμμ _ μ΄λ€ ννλ‘λ _ μ‘΄μ¬νμ§ μμ΅λλ€.
115
+ TypeScriptμ νμ
μμ€ν
μ λν * ꡬ체νλμ§ μμμ΅λλ€ * : λ°νμμ ` obj ` κ° ` Pointlike ` μμ μλ €μ£Όμ§ μμ΅λλ€.
116
+ μ¬μ€, ` Pointlike ` νμ
μ λ°νμμ * μ΄λ€ ννλ‘λ * μ‘΄μ¬νμ§ μμ΅λλ€.
117
117
118
- _ μ§ν©μΌλ‘μμ νμ
_ κ°λ
μΌλ‘ 보면, ` obj ` λ₯Ό ` Pointlike ` κ° μ§ν©μ΄λ ` Named ` κ° μ§ν©μ λ©€λ²λ‘ κ°μ£Όν μ μμ΅λλ€.
118
+ * μ§ν©μΌλ‘μμ νμ
* κ°λ
μΌλ‘ 보면, ` obj ` λ₯Ό ` Pointlike ` κ° μ§ν©μ΄λ ` Named ` κ° μ§ν©μ λ©€λ²λ‘ κ°μ£Όν μ μμ΅λλ€.
119
119
120
120
### ꡬ쑰μ νμ
νμ κ²°κ³Ό (Consequences of Structural Typing)
121
121
122
122
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ¨Έλ μ’
μ’
ꡬ쑰μ νμ
νμ λ κ°μ§ μΈ‘λ©΄μ λλΌκ³€ ν©λλ€.
123
123
124
124
#### λΉ νμ
(Empty Types)
125
125
126
- 첫 λ²μ§Έλ‘ _ λΉ νμ
_μ μμμ 무μνλ κ²μ²λΌ 보μ
λλ€:
126
+ 첫 λ²μ§Έλ‘ * λΉ νμ
* μ μμμ 무μνλ κ²μ²λΌ 보μ
λλ€:
127
127
128
128
```
129
129
class Empty {}
@@ -138,11 +138,11 @@ fn({ k: 10 });
138
138
139
139
TypeScriptλ μ£Όμ΄μ§ μΈμκ° μ ν¨ν ` Empty ` μΈμ§ νμΈνμ¬ ` fn ` μ νΈμΆμ΄ μ ν¨νμ§λ₯Ό κ²μ¬ν©λλ€
140
140
` { k: 10 } ` κ³Ό ` class Empty { } ` μ _ ꡬ쑰λ₯Ό νμΈνμ¬ μ ν¨μ±μ κ²μ¬ν©λλ€.
141
- ` Empty ` μ νλ‘νΌν°κ° μμΌλ―λ‘ ` Empty ` κ° μννλ _ λͺ¨λ _ νλ‘νΌν°κ° ` { k: 10 } ` μ μν΄μμ΅λλ€.
141
+ ` Empty ` μ νλ‘νΌν°κ° μμΌλ―λ‘ ` Empty ` κ° μννλ * λͺ¨λ * νλ‘νΌν°κ° ` { k: 10 } ` μ μν΄μμ΅λλ€.
142
142
κ·Έλ¬λ―λ‘, μ ν¨ν νΈμΆμ
λλ€:
143
143
144
144
λλμ§λ§, μ΅μ’
μ μΌλ‘ λͺ
λͺ©μ μΈ κ°μ²΄μ§ν₯νλ‘κ·Έλλ° μΈμ΄μ λ§€μ° λΉμ·νκ² μ¬μ©λ©λλ€.
145
- νμ ν΄λμ€μ νμ ν΄λμ€μ κΈ°λ³Έ μ¬μ΄μ μμ°μ€λ¬μ΄ νμ νμ
κ΄κ³κ° νκ΄΄λκΈ° λλ¬Έμ, νμ ν΄λμ€λ _ μμ _ν μ μμ΅λλ€.
145
+ νμ ν΄λμ€μ νμ ν΄λμ€μ κΈ°λ³Έ μ¬μ΄μ μμ°μ€λ¬μ΄ νμ νμ
κ΄κ³κ° νκ΄΄λκΈ° λλ¬Έμ, νμ ν΄λμ€λ * μμ * ν μ μμ΅λλ€.
146
146
ꡬ쑰μ νμ
μμ€ν
μ νΈν κ°λ₯ν μ νμ μμ±μ κ°λ μΈ‘λ©΄μμ νμ νμ
μ μ€λͺ
νλ―λ‘ μμ κ΄κ³λ₯Ό μμμ μΌλ‘ ꡬλ³ν©λλ€
147
147
148
148
#### λμΌν νμ
(Identical Types)
@@ -165,7 +165,7 @@ class Golfer {
165
165
let w: Car = new Golfer ();
166
166
```
167
167
168
- λ€μ λ§νμ§λ§, μ€λ₯κ° μλ μ΄μ λ ν΄λμ€μ _ ꡬ쑰_κ° λμΌνκΈ° λλ¬Έμ
λλ€.
168
+ λ€μ λ§νμ§λ§, μ€λ₯κ° μλ μ΄μ λ ν΄λμ€μ * ꡬ쑰 * κ° λμΌνκΈ° λλ¬Έμ
λλ€.
169
169
μ μ¬μ μΈ νΌλμ μ΄μ κ° λ μλ μκ² μ§λ§, μ¬μ€ μκ΄μλ ν΄λμ€κ° λμΌν κ²½μ°λ μΌλ°μ μ΄μ§ μμ΅λλ€.
170
170
171
171
μ°¨νμ ν΄λμ€ μ±ν°μμ ν΄λμ€κ° μλ‘ μ΄λ»κ² κ΄λ ¨λλμ§μ λν΄ μμΈν μμλ³Ό κ²μ
λλ€.
0 commit comments