Skip to content

Commit a771a95

Browse files
committed
Update docs
1 parent 2913321 commit a771a95

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+511
-509
lines changed

β€Žindex.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
744744
<script>
745745
var gitbook = gitbook || [];
746746
gitbook.push(function() {
747-
gitbook.page.hasChanged({"page":{"title":"μ†Œκ°œ","level":"1.1","depth":1,"next":{"title":"5λΆ„ μ•ˆμ— λ³΄λŠ” TypeScript","level":"2.1","depth":1,"path":"pages/tutorials/TypeScript in 5 minutes.md","ref":"pages/tutorials/TypeScript in 5 minutes.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["theme-darkblue","addcssjs","highlight-1","custom-favicon","forkmegithub","sitemap-general","sitemap","analytics"],"pluginsConfig":{"github":{"url":"https://github.com/typescript-kr/typescript-kr.github.io"},"analytics":{"google":"UA-99001722-6"},"search":{},"addcssjs":{"js":[],"css":["assets/css/atom-one-dark.css"]},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sitemap-general":{"prefix":"https://typescript-kr.gitbooks.io/"},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-darkblue":{},"highlight":{},"favicon":"assets/images/favicon.ico","sitemap":{"hostname":"https://typescript-kr.github.io/"},"highlight-1":{},"custom-favicon":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"forkmegithub":{"color":"darkblue","url":"https://github.com/typescript-kr/typescript-kr.github.io"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"README.md","mtime":"2018-04-11T14:33:53.922Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-04-11T14:34:25.111Z"},"basePath":".","book":{"language":""}});
747+
gitbook.page.hasChanged({"page":{"title":"μ†Œκ°œ","level":"1.1","depth":1,"next":{"title":"5λΆ„ μ•ˆμ— λ³΄λŠ” TypeScript","level":"2.1","depth":1,"path":"pages/tutorials/TypeScript in 5 minutes.md","ref":"pages/tutorials/TypeScript in 5 minutes.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["theme-darkblue","addcssjs","highlight-1","custom-favicon","forkmegithub","sitemap-general","sitemap","analytics"],"pluginsConfig":{"github":{"url":"https://github.com/typescript-kr/typescript-kr.github.io"},"analytics":{"google":"UA-99001722-6"},"search":{},"addcssjs":{"js":[],"css":["assets/css/atom-one-dark.css"]},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sitemap-general":{"prefix":"https://typescript-kr.gitbooks.io/"},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-darkblue":{},"highlight":{},"favicon":"assets/images/favicon.ico","sitemap":{"hostname":"https://typescript-kr.github.io/"},"highlight-1":{},"custom-favicon":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"forkmegithub":{"color":"darkblue","url":"https://github.com/typescript-kr/typescript-kr.github.io"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"README.md","mtime":"2018-04-17T07:28:07.570Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-04-17T07:28:53.954Z"},"basePath":".","book":{"language":""}});
748748
});
749749
</script>
750750
</div>

β€Žpages/Advanced Types.html

Lines changed: 14 additions & 14 deletions
Large diffs are not rendered by default.

β€Žpages/Advanced Types.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ else if (pet.fly) {
145145
}
146146
```
147147

148-
λ™μΌν•œ μ½”λ“œκ°€ μž‘λ™ν•˜λ„λ‘ ν•˜λ €λ©΄ νƒ€μž… ν‘œλͺ…을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ :
148+
λ™μΌν•œ μ½”λ“œκ°€ μž‘λ™ν•˜λ„λ‘ ν•˜λ €λ©΄ νƒ€μž… 단언을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ :
149149

150150
```ts
151151
let pet = getSmallPet();
@@ -160,7 +160,7 @@ else {
160160

161161
## μ‚¬μš©μž μ •μ˜ νƒ€μž… κ°€λ“œ (User-Defined Type Guards)
162162

163-
νƒ€μž… ν‘œλͺ…(type assertions)을 μ—¬λŸ¬ 번 μ‚¬μš©ν•΄μ•Ό ν–ˆλ‹€λŠ” 것에 μ£Όλͺ©ν•˜μ„Έμš”.
163+
νƒ€μž… 단언(type assertions)을 μ—¬λŸ¬ 번 μ‚¬μš©ν•΄μ•Ό ν–ˆλ‹€λŠ” 것에 μ£Όλͺ©ν•˜μ„Έμš”.
164164
일단 이 검사λ₯Ό μ‹€μ‹œν•˜λ©΄ 각 μ§€μ μ—μ„œ `pet`의 νƒ€μž…λ₯Ό μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.
165165

166166
그런 일이 μžˆμ„ λ•Œ TypeScriptμ—λŠ” *type guard*λΌλŠ” 것이 μžˆμŠ΅λ‹ˆλ‹€.
@@ -174,7 +174,7 @@ function isFish(pet: Fish | Bird): pet is Fish {
174174
```
175175

176176
`pet is Fish`λŠ” 이 μ˜ˆμ œμ—μ„œ νƒ€μž… λͺ…μ œμž…λ‹ˆλ‹€.
177-
λͺ…μ œλŠ” `parameterName is Type` ν˜•νƒœμ„ μ·¨ν•©λ‹ˆλ‹€, μ—¬κΈ°μ„œ `parameterName`은 ν˜„μž¬ ν•¨μˆ˜ μ„œλͺ…μ˜ 맀개 λ³€μˆ˜ 이름이어야 ν•©λ‹ˆλ‹€.
177+
λͺ…μ œλŠ” `parameterName is Type` ν˜•νƒœμ„ μ·¨ν•©λ‹ˆλ‹€, μ—¬κΈ°μ„œ `parameterName`은 ν˜„μž¬ ν•¨μˆ˜ μ‹œκ·Έλ‹ˆμ²˜μ˜ 맀개 λ³€μˆ˜ 이름이어야 ν•©λ‹ˆλ‹€.
178178

179179
`IsFish`κ°€ 일뢀 λ³€μˆ˜μ™€ ν•¨κ»˜ 호좜될 λ•Œ μ›λž˜ νƒ€μž…μ΄ ν˜Έν™˜ κ°€λŠ₯ν•˜λ‹€λ©΄ TypeScriptλŠ” κ·Έ λ³€μˆ˜λ₯Ό νŠΉμ • νƒ€μž…μœΌλ‘œ *μ œν•œ*ν•  κ²ƒμž…λ‹ˆλ‹€.
180180

@@ -282,7 +282,7 @@ if (padder instanceof StringPadder) {
282282
`instanceof`의 였λ₯Έμͺ½μ—λŠ” μƒμ„±μž ν•¨μˆ˜κ°€ μžˆμ–΄μ•Ό ν•˜λ©° TypeScriptλŠ” λ‹€μŒκ³Ό 같이 λ²”μœ„λ₯Ό μ’ν˜€ λ‚˜κ°‘λ‹ˆλ‹€:
283283
284284
1. νƒ€μž…μ΄ `any`κ°€ μ•„λ‹Œ 경우 ν•¨μˆ˜μ˜ `prototype` ν”„λ‘œνΌν‹° νƒ€μž…
285-
2. ν•΄λ‹Ή νƒ€μž…μ˜ μƒμ„±μž μ„œλͺ…에 μ˜ν•΄ λ°˜ν™˜λœ νƒ€μž…μ˜ κ²°ν•©
285+
2. ν•΄λ‹Ή νƒ€μž…μ˜ μƒμ„±μž μ‹œκ·Έλ‹ˆμ²˜μ— μ˜ν•΄ λ°˜ν™˜λœ νƒ€μž…μ˜ κ²°ν•©
286286
287287
이와 같은 μˆœμ„œλ‘œ μ§„ν–‰λ©λ‹ˆλ‹€.
288288
@@ -339,7 +339,7 @@ c.b = undefined; // ok
339339
c.b = null; // 였λ₯˜, 'null'은 'number | undefined'에 ν• λ‹Ήν•  수 μ—†μŠ΅λ‹ˆλ‹€
340340
```
341341
342-
## νƒ€μž… κ°€λ“œμ™€ νƒ€μž… ν‘œλͺ… (Type guards and type assertions)
342+
## νƒ€μž… κ°€λ“œμ™€ νƒ€μž… 단언 (Type guards and type assertions)
343343
344344
nullable νƒ€μž…μ€ μœ λ‹ˆμ˜¨μœΌλ‘œ κ΅¬ν˜„λ˜κΈ° λ•Œλ¬Έμ— νƒ€μž… κ°€λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ `null`을 μ œκ±°ν•΄μ•Ό ν•©λ‹ˆλ‹€.
345345
λ‹€ν–‰νžˆ JavaScriptμ—μ„œ μž‘μ„±ν•˜λŠ” μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:
@@ -363,7 +363,7 @@ function f(sn: string | null): string {
363363
}
364364
```
365365
366-
μ»΄νŒŒμΌλŸ¬κ°€ `null` λ˜λŠ” `undefined`λ₯Ό 제거 ν•  수 μ—†λŠ” 경우 νƒ€μž… ν‘œλͺ… μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜λ™μœΌλ‘œ μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
366+
μ»΄νŒŒμΌλŸ¬κ°€ `null` λ˜λŠ” `undefined`λ₯Ό μ œκ±°ν•  수 μ—†λŠ” 경우 νƒ€μž… 단언 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜λ™μœΌλ‘œ μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
367367
ꡬ문은 ν›„μœ„μ— `!` μž…λ‹ˆλ‹€: `identifier!`λŠ” `identifier`의 νƒ€μž… `null`κ³Ό `undefined`λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€:
368368
369369
```ts
@@ -543,7 +543,7 @@ function foo(x: number) {
543543
544544
"싱글톀 νƒ€μž…"에 λŒ€ν•΄ 이야기할 λ•Œ λ§Žμ€ μ‹œκ°„ λ™μ•ˆ, λ§Žμ€ μ‚¬μš©μžκ°€ "싱글톀 νƒ€μž…"κ³Ό "λ¦¬ν„°λŸ΄ νƒ€μž…"을 λ°”κΏ” μ‚¬μš©ν•˜κ² μ§€λ§Œ 숫자/λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ νƒ€μž…λΏλ§Œ μ•„λ‹ˆλΌ μ—΄κ±°ν˜• 멀버 νƒ€μž…μ„ λͺ¨λ‘ μ°Έμ‘°ν•©λ‹ˆλ‹€
545545
546-
# 곡용체 식별 (Discriminated Unions)
546+
# μœ λ‹ˆμ˜¨ 식별 (Discriminated Unions)
547547
548548
싱글톀 νƒ€μž…, μœ λ‹ˆμ˜¨ νƒ€μž…, νƒ€μž… κ°€λ“œ 및 νƒ€μž… 별칭을 κ²°ν•©ν•˜μ—¬ *discriminated unions*, *tagged unions* λ˜λŠ” *λŒ€μˆ˜μ˜(algebraic) 데이터 νƒ€μž…*λΌλŠ” κ³ κΈ‰ νŒ¨ν„΄μ„ λΉŒλ“œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
549549
Discriminated unions은 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ— μœ μš©ν•©λ‹ˆλ‹€.
@@ -734,7 +734,7 @@ let strings: string[] = pluck(person, ['name']); // μ’‹μ•„μš”, string[]
734734
μ»΄νŒŒμΌλŸ¬λŠ” `name`이 μ‹€μ œλ‘œ `Person`의 ν”„λ‘œνΌν‹°μΈμ§€ ν™•μΈν•©λ‹ˆλ‹€.
735735
이 μ˜ˆμ œλŠ” λͺ‡ κ°€μ§€ μƒˆλ‘œμš΄ νƒ€μž…μ˜ μ—°μ‚°μžλ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€.
736736
첫 λ²ˆμ§ΈλŠ” `keyof T`으둜 **인덱슀 νƒ€μž… 쿼리 μ—°μ‚°μž**μž…λ‹ˆλ‹€.
737-
μ–΄λ–€ νƒ€μž…μ˜ `T`에 λŒ€ν•΄μ„œ `keyof T`λŠ” `T`의 μ•Œλ €μ§„ public ν”„λ‘œνΌν‹° μ΄λ¦„λ“€μ˜ κ³΅μš©μ²΄μž…λ‹ˆλ‹€.
737+
μ–΄λ–€ νƒ€μž…μ˜ `T`에 λŒ€ν•΄μ„œ `keyof T`λŠ” `T`의 μ•Œλ €μ§„ public ν”„λ‘œνΌν‹° μ΄λ¦„λ“€μ˜ μœ λ‹ˆμ˜¨μž…λ‹ˆλ‹€.
738738
739739
예λ₯Ό λ“€μ–΄:
740740
@@ -751,7 +751,7 @@ let personProps: keyof Person; // 'name' | 'age'
751751
pluck(person, ['age', 'unknown']); // 였λ₯˜, 'unknown'은 'name' | 'age'에 μ—†μŠ΅λ‹ˆλ‹€
752752
```
753753
754-
두 번째 μ—°μ‚°μžλŠ” `T[K]`, **색인 μ ‘κ·Ό μ—°μ‚°μž(indexed access operator)** μž…λ‹ˆλ‹€.
754+
두 번째 μ—°μ‚°μžλŠ” `T[K]`, **인덱슀 μ ‘κ·Ό μ—°μ‚°μž(indexed access operator)** μž…λ‹ˆλ‹€.
755755
756756
μ—¬κΈ°μ„œ νƒ€μž…μ˜ ꡬ문은 ν‘œν˜„μ‹μ„ λ°˜μ˜ν•©λ‹ˆλ‹€.
757757
@@ -777,11 +777,11 @@ let age: number = getProperty(person, 'age');
777777
let unknown = getProperty(person, 'unknown'); // 였λ₯˜, 'unknown'은 'name' | 'age'에 μ—†μŠ΅λ‹ˆλ‹€
778778
```
779779
780-
## 인덱슀 νƒ€μž…κ³Ό λ¬Έμžμ—΄ 인덱슀 μ„œλͺ… (Index types and string index signatures)
780+
## 인덱슀 νƒ€μž…κ³Ό λ¬Έμžμ—΄ 인덱슀 μ‹œκ·Έλ‹ˆμ²˜ (Index types and string index signatures)
781781
782-
`keyof`와 `T[K]`λŠ” λ¬Έμžμ—΄ 인덱슀 μ„œλͺ…κ³Ό μƒν˜Έ μž‘μš©ν•©λ‹ˆλ‹€.
783-
λ¬Έμžμ—΄ 인덱슀 μ„œλͺ…을 κ°€μ§„ νƒ€μž…μ„ κ°€μ§€κ³  μžˆλ‹€λ©΄ `keyof T`λŠ” 단지`string`이 될 κ²ƒμž…λ‹ˆλ‹€.
784-
그리고 `T[string]`은 인덱슀 μ„œλͺ…μ˜ ν•œκ°€μ§€ μ’…λ₯˜μΌλΏμž…λ‹ˆλ‹€:
782+
`keyof`와 `T[K]`λŠ” λ¬Έμžμ—΄ 인덱슀 μ‹œκ·Έλ‹ˆμ²˜κ³Ό μƒν˜Έ μž‘μš©ν•©λ‹ˆλ‹€.
783+
λ¬Έμžμ—΄ 인덱슀 μ‹œκ·Έλ‹ˆμ²˜μ„ κ°€μ§„ νƒ€μž…μ„ κ°€μ§€κ³  μžˆλ‹€λ©΄ `keyof T`λŠ” 단지`string`이 될 κ²ƒμž…λ‹ˆλ‹€.
784+
그리고 `T[string]`은 인덱슀 μ‹œκ·Έλ‹ˆμ²˜μ˜ ν•œκ°€μ§€ μ’…λ₯˜μΌλΏμž…λ‹ˆλ‹€:
785785
786786
```ts
787787
interface Map<T> {
@@ -839,11 +839,11 @@ type Keys = 'option1' | 'option2';
839839
type Flags = { [K in Keys]: boolean };
840840
```
841841
842-
ꡬ문은 인덱슀 μ„œλͺ…을 μœ„ν•œ ꡬ문과 `for .. in` λ‚΄λΆ€κ°€ μœ μ‚¬ν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€.
842+
ꡬ문은 인덱슀 μ‹œκ·Έλ‹ˆμ²˜μ„ μœ„ν•œ ꡬ문과 `for .. in` λ‚΄λΆ€κ°€ μœ μ‚¬ν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€.
843843
μ„Έ κ°€μ§€ 파트둜 λ‚˜λ‰©λ‹ˆλ‹€:
844844
845845
1. λ³€μˆ˜μ˜ νƒ€μž… `K`λŠ” 각 ν”„λ‘œνΌν‹°μ— μ°¨λ‘€λŒ€λ‘œ 바인딩 λ©λ‹ˆλ‹€.
846-
2. λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ 곡용체 `Keys`λŠ” λ°˜λ³΅ν•  ν”„λ‘œνΌν‹°μ˜ 이름을 ν¬ν•¨ν•©λ‹ˆλ‹€.
846+
2. λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ μœ λ‹ˆμ˜¨ `Keys`λŠ” λ°˜λ³΅ν•  ν”„λ‘œνΌν‹°μ˜ 이름을 ν¬ν•¨ν•©λ‹ˆλ‹€.
847847
3. 결과적으둜 μƒμ„±λœ ν”„λ‘œνΌν‹°μ˜ νƒ€μž….
848848
849849
이 κ°„λ‹¨ν•œ μ˜ˆμ œμ—μ„œ `Keys`λŠ” ν•˜λ“œ μ½”λ”©λœ ν”„λ‘œνΌν‹° μ΄λ¦„μ˜ 리슀트이고 ν”„λ‘œνΌν‹° νƒ€μž…μ€ 항상 `boolean`μ΄λ―€λ‘œ mapped type은 μž‘μ„±λœ 것과 κ°™μŠ΅λ‹ˆλ‹€.

0 commit comments

Comments
Β (0)