- 1. 11์ฅ ์ ๋ค๋ฆญ
- 1.1. ๐361p ์ ๋ค๋ฆญ ์๊ฐ
- 1.2. ๐366p. ํ์ ๋งค๊ฐ๋ณ์ T๋ฅผ ํน์ ํ์ ์ผ๋ก ์ ํํด์ผํ ๊ฒฝ์ฐ
- 1.3. ๐367p. ์ค๋ฒ๋ก๋์์ ์ ๋ค๋ฆญ
- 1.4. ๐369p. ํ์ ๋งค๊ฐ๋ณ์ 2๊ฐ ์ด์ ์ ์ธ๋ฒ
- 1.5. ๐371p. Generic class
- 1.6. ๐377p. ๋ฃฉ์ ํ์ (lookup)
- 1.7. ๐379p. ์ธํฐํ์ด์ค ์์๊ณผ ๋์์ ์ ๋ค๋ฆญ ํ์ฅ
- 1.8. ๐381p. ๋งต ๊ฐ์ฒด ์๊ฐ
- 1.9. ๐384p. ์ ๋ค๋ฆญ ๊ธฐ๋ฐ์ ์๋ฃ๊ตฌ์กฐ ์์ฑ
๐ Quick Start Typescript ์ ์ฝ๊ณ , ๊ฐ๋จํ ๋ชฐ๋๋ ๋ถ๋ถ์ด๋ ์ค์ํ๋ค๊ณ ์๊ฐ๋๋ ๋ถ๋ถ์ ์์ฑ
11์ฅ ์ ๋ค๋ฆญ
๐361p ์ ๋ค๋ฆญ ์๊ฐ
์ ๋ค๋ฆญ(generics)์ ํด๋์ค์ ํจ์์ ํ์ ์ด ๊ณ ์ ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ฌ์ฌ์ฉํ ์ ์๋ ์์๋ฅผ ์ ์ธํ ์ ์๊ฒ ํ๋ ๊ฒ
๊ธฐ์กด C#, JAVA์์ ์ ๊ณต๋์๋ ๊ธฐ๋ฅ, ํ์ ์คํฌ๋ฆฝํธ๋ 0.9๋ถํฐ ์ง์
์ฅ์
- ์ปดํ์ผ ์๊ฐ์ ์งํํด ํ์ ์์ ์ฑ์ ๋ณด์ฅ
- ํ์ ์บ์คํ ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์ ๊ฑฐ ๊ฐ๋ฅ
- ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์ฝ๋ ์์ฑ ๊ฐ๋ฅ
์ฌ์ฉ๋ฒ
1 | function arrayConcat<T>(array1: T[], array2: T[]): T[] { |
<T>
๊ฐ์์ ํ์
(= ํ์
๋งค๊ฐ๋ณ์(type parameter
) = ์ ๋ค๋ฆญ ํ์
๋ณ์(generic type variables
))์ผ๋ก ์์์ ๋จ์ด๋ฅผ ์ฌ์ฉํด๋ ๋๋ค.
์์ . ํ์ ์บ์คํ ๊ณผ ๊ด๋ จ ์ฝ๋ ์ ๊ฑฐ
์โฆ ๊ฒฐ๊ตญ ๋ฌธ์์ด๋ง ๋ฐ์์, ์บ์คํ ์ฝ๋๋ฅผ ์์ ๊ฑฐ๋, ์ซ์๋ฅผ ๋ฐ์์ ์บ์คํ ์ฝ๋๋ฅผ ์ดํ ์ฒ๋ฆฌํ๋๊ฑฐ๋ ์กฐ์ผ๋ชจ์ฌ ์๋๊ฐ?
๊ทธ๋ผ ๋ณธ์ง์ ์ผ๋ก ํ์ ์บ์คํ ๊ณผ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์ ๊ฑฐํ ์ ์๋ ๊ฒ์ด ์๋๊ฐ?
์ด์
1 | function concat(str1, str2) { |
์ดํ
1 | function concat<T>(str1: T, str2: T): T { |
๐366p. ํ์ ๋งค๊ฐ๋ณ์ T๋ฅผ ํน์ ํ์ ์ผ๋ก ์ ํํด์ผํ ๊ฒฝ์ฐ
1 | // <T extends string> |
๐367p. ์ค๋ฒ๋ก๋์์ ์ ๋ค๋ฆญ
1 | function concat<T>(str1: T, str2: T): T; |
๐369p. ํ์ ๋งค๊ฐ๋ณ์ 2๊ฐ ์ด์ ์ ์ธ๋ฒ
1 | let mapArray = []; |
๐371p. Generic class
1 | class ํด๋์ค๋ช <T> { |
Example
1 | interface IName { |
๐377p. ๋ฃฉ์ ํ์ (lookup)
keyof
ํค์๋๋ก ํค๊ฐ์ ํ์ํ์ฌ, ์ ๋์ธ ํ์
์ฒ๋ผ ์๋์ํด
์๋์ ์์ ๋ฅผ ๋ณด๋ฉด, ์ธํฐํ์ด์ค์ ํค๊ฐ๋ง์ ํ์ฉํ๋ ์ ๋์ธ ๋ฐฉ์์ฒ๋ผ ์๋๋จ์ ์ ์ ์์
1 | interface INumber { |
ํ์ฉ ์์
1 | function getValue<T, K extends keyof T>(obj: T, key: K) { |
๐379p. ์ธํฐํ์ด์ค ์์๊ณผ ๋์์ ์ ๋ค๋ฆญ ํ์ฅ
1 | interface IFilter<T> { |
๐381p. ๋งต ๊ฐ์ฒด ์๊ฐ
์๋ต
๐384p. ์ ๋ค๋ฆญ ๊ธฐ๋ฐ์ ์๋ฃ๊ตฌ์กฐ ์์ฑ
์คํ, ํ, ArrayList๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ ๋ด์ฅ ๊ฐ์ฒด๋ก ์ง์๋์ง ์์์ ์ง์ ๊ตฌํ์ ํ์๋ก ํ๋๋ฐ, ์ด ๋ ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์
์ด ์ค ์ฑ ์์๋ ArrayList๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์ค๋ช
์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ตํ๋ ๊ฒ์ด ๋ชฉ์ ์ด ์๋๊ธฐ ๋๋ฌธ์ ์๋ต