ํ์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๋ฐฐ์ฐ๊ณ , ๋ค๋ฅธ ์ฌ๋์ด ์์ฑํ ํ์ ์ ๋ถ์ํ๋ ๋ฐฉ๋ฒ๊ณผ, ๋ด๊ฐ ์ง์ ํ์ ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
๋ค๋ฅธ ์๊ฐ์๋ค์ด ์์ฃผ ๋ฌผ์ด๋ณด๋ ์ง๋ฌธ์ด ๊ถ๊ธํ์ ๊ฐ์?
forEach ์ ๋ค๋ฆญ ๊ด๋ จ ๋ฌธ์
๋ฌธ์1)interface Array {forEach(callbackfn: (value: T, index: number, array: T[]
์ต๋ณ๊ตญ
ใป
2๋ฌ ์
0
30
1
ํ์ ์ถ๋ก ์ ๊ฐ์ฅ ๋์ ๋ฒ์๋ก ์ถ๋ก ์ด ๋๋ ๊ฑด๊ฐ์?
๋จผ์ ํ ์คํธ ํด ๋ณธ ์ฝ๋ ์ฌ๋ฆฝ๋๋ค.const obj = { a: '123', b: 'hello', c: 'world' } as { a: string, b: `hel${string}`, r
๊น์ฑ๋ฏผ
ใป
7๋ฌ ์
0
118
1
enum์ด javascript๋ก ํธ๋์คํ์ผ๋ง๋ ๋ ์ฌ๋ผ์ง๋คํ์ จ๋๋ฐ์
"enum, keyof, typeof" ๊ฐ์ 2๋ถ 20์ด๊ฒฝ enum์ด javascript๋ก transpiling๋ ๋ ์ฌ๋ผ์ง๋คํ์ จ๋๋ฐ์.์ด๋ ๊ฒ ๋๋ค๋ฉด enum ์ฌ์ฉํ
sungchul09
ใป
10๋ฌ ์
0
159
1
ํจ์ ํ๋ผ๋ฏธํฐ ํ์ ์ ์ ์ ...args: any[]์ ...args: any ์ ์ฐจ์ด
ํจ์ ํ์ ์ ์ ์ ...args ์ any[] ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ง์ด ๋ดค์ต๋๋ค. any> // 1 <T e
wbb
ใป
์ผ ๋ ์
0
173
1
Flat type์์ ReadonlyArray ํ์ ์ ์ฌ์ฉํ๋ ์ด์ ?
FlatArray ํ์ ์์ recur ๋ฅผ ํ ๋, Arr extends Array๊ฐ ์๋ Arr extends ReadonlyArray ๋ก ํ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค. ๊ทธ๋ฅ, Readonly array๋ผ๋๊ฒ์ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋ช ์ํ๋ ์ ๋์ ์ฌ์ฉ์ผ๊น์?<c
Rona
ใป
์ผ ๋ ์
0
124
1
bind type ์ง๋ฌธ
์๋ ํ์ธ์ ts version 5.5.4 ์ ๋๋ค.bind ํ์ ์ ์๋ ์๋์ ๊ฐ์ด ๋์ด์์ต๋๋ค.bind(this: Function, thisArg: any, ...argArra
Rona
ใป
์ผ ๋ ์
1
117
1
Lowercase type ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์.[๋ฆฌ๋ด์ผ] ํ์ ์คํฌ๋ฆฝํธ ์ฌ์ธ์ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์๋๋ฐ, "infer ํ์ ๋ถ์" ๊ฐ์ข์์ Lowercase type์ ๋ฐฐ์ ์ต๋๋ค.๊ฐ์์์๋ ์๋์ ๊ฐ์ด ํด์ฃผ๋ฉด ์๋ฌ๊ฐ ์๋๋๋ฐ ์ ๋
Rona
ใป
์ผ ๋ ์
0
125
1
key-value ํ์ ์๋์ถ๋ก ์ง๋ฌธ๋๋ฆฝ๋๋ค
const StreamingProtocolList = ['HLS', 'DASH', 'CMAF'] as const export type UnionOfTuple = T[number] export
์งํ
ใป
0
215
1
ํ์ ์คํฌ๋ฆฝํธ ๊ต๊ณผ์, p131
์ฌ๊ธฐ์ Person3 ๊ฒฐ๊ณผ๋ก Person: {"name: "z
์์ฐ
ใป
0
226
1
ํ์ ์คํฌ๋ฆฝํธ ๊ต๊ณผ์ p122 forEach ๋ฉ์๋ ์ง๋ฌธ
[1, 2, 3].forEach((item, index, array) => { console.log(item, index, array); }); [1, 2, 3].forEach((item,
์์ฐ
ใป
0
174
1
ํ์ ์คํฌ๋ฆฝํธ ๊ต๊ณผ์ p116 , ์ฝ๋์๋ฌ๋จ
class Person { name: string; age: number; married: boolean; } constructor(name: string, age:
์์ฐ
ใป
1
224
1
ํ์ ์คํฌ๋ฆฝํธ ๊ต๊ณผ์ p112 , ์ฝ๋๊ฐ ์์ฝํ๋๋ค..
// 1๋ฒ ์ฝ๋ function test(a: T) { type R = T extends string ? T : T; const b: R<T&
์์ฐ
ใป
0
210
1
ํ์ ์คํฌ๋ฆฝํธ ๊ต๊ณผ์ p83
type J = {} & string; // type J = {} & string์ฑ ์ {} ์ string์ ๊ต์งํฉ์ด string ์ด๋ผ๊ณ ๋์์๋๋ฐ, </p
์์ฐ
ใป
1
158
1
ํ์ ์คํฌ๋ฆฝํธ๊ต๊ณผ์ p39 ์ชฝ ์ฝ๋๊ฐ ์ดํด๊ฐ ์๋์
const func: (amount: number, unit: string) => string = (amount, unit) => amount + unit; </co
์์ฐ
ใป
1
189
1
class ์์ ts์ private vs js์ private field( # )
์๋ ํ์ธ์ ts ๊ฐ์๋ ์ฑ ๋ชจ๋ ๋ณด๊ณ ์๋์ค์ธ๋ฐ์.๊ฐ์์์๋(ํด๋์ค์ ์๋ก์ด๊ธฐ๋ฅ๋ค 4๋ถ 10์ด์ฏค) protected์ ๊ตฌ๋ถํ๊ธฐ ์ฌ์ด ์ด์ ๋ก ts์ private ๋ฅผ ์ถ์ฒํ์๋๋ฐ ์ฑ ์์๋ (ebook ๊ธฐ์ค 294์ชฝ ์ฏค) js์ private field(
BBB AAA
ใป
0
293
1
ts -> js ๋ก ๋ณํํ ๋ ํ์ ์ ์ธ์ ๋จ๊ฒจ๋๋๊ฑธ ์ถ์ฒํ๋ ์ด์
์น์ 1์ enum, keyof, typeof ๊ฐ์์์enum ์ js๋ก ๋ฐ๊พธ๋ฉด ์ฌ๋ผ์ง๊ณ ๊ฐ์ฒด as const ๋ฐฉ์์ ์ฌ๋ผ์ง์ง ์๋๋ฐ์ด๊ฑธ ์ฌ๋ผ์ง๊ฒ ํ ์ง ๋จ๊ฒจ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด ๋จ๊ธฐ๋๊ฑธ ์ถ์ฒํ๋ค ํ์ ๋ถ๋ถ์ด์.<
bomiKim
ใป
0
230
1
๊ธฐ์ด๊ฐ ๋ถ์กฑํ ๋ ์ด๋ค ์ฐ์ต์ ์ข๋ ํ๋ฉด ์ข์๊น์?
์๋ ํ์ธ์ ์์ ์ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ์๋ฅผ ๋ฃ๋ค ์ค์ ๋ก ์ฌ์ฉ์ ํ๋๋ ์ํด์ ๊น๋จน์ ์ํ์ธ๋ฐ์.๊ทธ๋๋ ๊ทธ๋ ๊ณ ์ง๊ธ๋ ๊ทธ๋ ๊ณ ํ์ ๋ถ์ ๋ค์ด๊ฐ๋ ๊ฐ์๋ถํฐ๋ ๋์ ํ ์ค์ค๋ก ๋ถ์์ด ์๋๊ณ ์ค๋ช ํด์ฃผ์๋๊ฒ๋ง ๋๋๊ฑฐ๋ฆฌ๋ฉด์ ์ดํดํ๊ณ ๋์ด๊ฐ๊ธฐ๋ง ํ๊ณ ์์ต๋๋ค.
BBB AAA
ใป
0
340
1
OmitThisParameter ๋๋ฒ์งธ ์กฐ๊ฑด๋ถ ์ง๋ฌธ์ ๋๋ค!
์๋ ํ์ธ์! ์์ ๋ณต์กํ ํ์ ๋ถ์ํ๊ธฐ(bind ํธ) 5:25์ ๋ณด๋ค๊ฐ ๊ถ๊ธํ ์ ์ด ์๊ฒจ์ ์ง๋ฌธ๋๋ฆฝ๋๋ค. ์๋๋ OmitThisParameter์ธ๋ฐ์type OmitThisParameter = un
dawn
ใป
0
223
2
์ ๋ค๋ฆญ์ never๊ฐ ๋ค์ด์ฌ ๋ ๋ถ๋ฐฐ๋ฒ์น
๋ถ๋ฐฐ๋ฒ์น์ ์๋๋ฐฉ๋ฒ ์ดํด๊ฐ ์ด๋ ค์ ํ์ ์คํฌ๋ฆฝํธ ๊ต๊ณผ์๋ฅผ ๋ณด๋ ์ค ๋ชจ๋ฅด๋ ๋ถ๋ถ์ด ์๊ฒจ์ ์ง๋ฌธ๋๋ฆฝ๋๋ค!ํด๋น ๋ด์ฉ์ ํ์ ์คํฌ๋ฆฝํธ ๊ต๊ณผ์ p.111์ ์๋ ๋ด์ฉ์ธ๋ฐ์type R = T extends string ? tru
dawn
ใป
1
359
1
forEach ์ฝ๋ฐฑํจ์ ๋ฆฌํด๊ฐ ํ์ ์ด void์ธ ์ด์ ?
declare function forEach(arr: number[], callback: (el: number) => undefined): void; let target: number[] =
์ ๋๋ง
ใป
0
392
1
โฉ36,300