Typescript: ๋™์ผํ•œ ์œ ํ˜•์˜ ์†์„ฑ์„ ๊ฐ€์ง„ ์œ ํ˜• / ์ธํ„ฐํŽ˜์ด์Šค์˜ ์†๊ธฐ

์— ๋งŒ๋“  2019๋…„ 02์›” 28์ผ  ยท  1๋…ผํ‰  ยท  ์ถœ์ฒ˜: microsoft/TypeScript

๊ฒ€์ƒ‰์–ด

์ธํ„ฐํŽ˜์ด์Šค ์†๊ธฐ, ์„คํƒ• ๊ตฌ๋ฌธ, ๋™์ผํ•œ ์œ ํ˜•์˜ ์ธํ„ฐํŽ˜์ด์Šค, ๋™์ผํ•œ ์œ ํ˜•์˜ ์œ ํ˜•

์•”์‹œ

๋™์ผํ•œ ์œ ํ˜•์˜ ๋ชจ๋“  ํ‚ค๊ฐ€์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค / ์œ ํ˜•์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์†๊ธฐ๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€


์ค„ ์ˆ˜๋ฅผ ์ค„์ด๊ณ  ๊ฐ€๋…์„ฑ์—๋„ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

์˜ˆ


export interface AllStrings { prop1: string; prop2: string; }

๊ฐ™์€ ๊ฒƒ์—

export interface AllStrings<type: string> { prop1,prop2; }

์ฒดํฌ๋ฆฌ์ŠคํŠธ

๋‚ด ์ œ์•ˆ์€ ๋‹ค์Œ ์ง€์นจ์„ ์ถฉ์กฑํ•ฉ๋‹ˆ๋‹ค.

  • [x] ์ด๊ฒƒ์€ ๊ธฐ์กด TypeScript / JavaScript ์ฝ”๋“œ์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค.
  • [x] ๊ธฐ์กด JavaScript ์ฝ”๋“œ์˜ ๋Ÿฐํƒ€์ž„ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • [x] ํ‘œํ˜„์‹์˜ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฅธ JS๋ฅผ ๋‚ด ๋ณด๋‚ด์ง€ ์•Š๊ณ  ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • [x] ์ด๊ฒƒ์€ ๋Ÿฐํƒ€์ž„ ๊ธฐ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค (์˜ˆ : ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋Šฅ, JavaScript ์ถœ๋ ฅ์ด์žˆ๋Š” ๋น„ ECMAScript ๊ตฌ๋ฌธ ๋“ฑ).
  • [-]์ด ๊ธฐ๋Šฅ์€ TypeScript์˜ ๋‚˜๋จธ์ง€
Question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋Š” ์–ด๋•Œ:

type AllStrings = Record<"prop1" | "prop2", string>

>๋ชจ๋“  ๋Œ“๊ธ€

๋Š” ์–ด๋•Œ:

type AllStrings = Record<"prop1" | "prop2", string>
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰