π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript
μ΄μ₯μμμ ν΅μ¬μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μμ±μ€μΌ λ, μμ‘΄μ΄ νμν λΌμ΄λΈλ¬λ¦¬κ° ꡬνκ³Ό μκ΄μμ΄ νμ
λ§ νμνλ€λ©΄ λͺ¨λ λΌμ΄λΈλ¬λ¦¬λ₯Ό λΆλ¬μ€μ§ μκ³ κ΅¬μ‘°μ νμ΄νμ νμ©νμ¬ νμν λ©μλμ μμ±λ§ λ³λλ‘ μμ±νμλΌκ³ λκ»΄μ‘λ€. Buffer μμ Buffer νμ
μ μμλ‘ μ΄ν΄λ³΄μ. Bufferλ λ
Έλ κ°λ°μλ₯Ό μν κ²μ΄λ€. Buffer νμ
μ λΆλ¬μ€κΈ° μν΄ @types/node(NodeJS νμ
μ μΈ) λͺ¨λμ μ€μΉν΄μΌ νλ€. μ΄λ₯Ό μ€μΉνκ² λλ€λ©΄ λ€μκ³Ό κ°μ κ°λ°μμκ² λ¬Έμ κ° μκΈ΄λ€. 1. μλ°μ€ν¬λ¦½νΈ κ°λ°μ: NodeJS, @typesμ 무κ΄νλ€. 2. νμ
μ€ν¬λ¦½νΈ κ°λ°μ: NodeJSμ 무κ΄νλ€. μ¦, κ°μκ° μ¬μ©νμ§ μλ λͺ¨λμ΄ ν¬ν¨λμ΄ μκΈ° λλ¬Έμ νΌλμ€λ¬μΈ κ²μ΄λ€. Bufferλ NodeJS κ°λ°μμκ²λ§ ..
π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript
μ€λ²λ‘λ© νμ
μ΄λ? μ€λ²λ‘λ© νμ
μ μμ΄ν
3μμ λ€λ£¨μλ κ°λ
μ΄λ€. λ€μ μ 리νμλ©΄ λ€μκ³Ό κ°λ€. μ°μ ν¨μ μ€λ²λ‘λ©μ΄λ λμΌν μ΄λ¦μ 맀κ°λ³μλ§ λ€λ₯Έ μ¬λ¬ λ²μ μ ν¨μλ₯Ό νμ©νλ κ²μ΄λ€. νμ§λ§ νμ
μ€ν¬λ¦½νΈμμλ λΆκ°λ₯νλ€. νμ
μ€ν¬λ¦½νΈμ λΉμ·ν κΈ°λ₯μ μ§μνμ§λ§ μ΄λ νμ
μμ€μμλ§ λμνλ―λ‘ μ€λ²λ‘λ© νμ
μ΄λΌκ³ νλ€. μ¦, νλμ ν¨μμ λν΄ μ¬λ¬ κ°μ μ μΈλ¬Έμ μμ±ν μ μμ§λ§, ꡬν체λ μ€μ§ νλλΏμ΄λ€. function add(a: number, b: number): number; // add ν¨μμ λν μ μΈλ¬Έ 1 function add(a: string, b: string): string; // add ν¨μμ λν μ μΈλ¬Έ 2 // add ν¨μ ꡬν체 function add(a, b) { r..
π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript
1. ꡬ쑰μ νμ΄νμ κ΄μ μμ μ΄ν΄λ³΄κΈ° λ€μκ³Ό κ°μ μ½λκ° μμ΅λλ€. type Vector2D = { x: number; y: number; }; type Vector3D = { x: number; y: number; z: number; }; const calculateNorm = (p: Vector2D) => { return Math.sqrt(p.x * p.x + p.y * p.y); }; Vector2Dμ Vector3D νμ
μ΄ μμ΅λλ€. calculateNorm ν¨μλ μλλ°μ. μ΄ ν¨μλ Vector2D νμ
μ 맀κ°λ³μλ₯Ό λ°μ΅λλ€. λλ¬Έμ Vector3D νμ
μ 맀κ°λ³μλ₯Ό νμ©νμ§ μμμΌ ν©λλ€. νμ§λ§ ꡬ쑰μ νμ΄ν κ΄μ μμ λ³Έλ€λ©΄ λ€μμ μ½λλ λ¬Έμ κ° μμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄μ μ΄λ»κ² ν΄..
π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript
1. μ ν¨ν μν ν¨κ³Όμ μΌλ‘ νμ
μ μ€κ³νκΈ° μν΄μ, μ ν¨ν μνλ§ ννν μ μλ νμ
μ λ§λ€μ΄ λ΄λ κ²μ΄ κ°μ₯ μ€μνλ€. μ¬κΈ°μ λ§νλ μ ν¨ν μνλ 무μμΌκΉ? μ ν¨μ μ¬μ μ μλ―Έλ₯Ό μ΄ν΄λ³΄λ©΄ λ€μκ³Ό κ°λ€. ν¨λ ₯μ΄λ ν¨κ³Όκ° μμ. μ¦, ν¨λ ₯μ΄λ ν¨κ³Όκ° μλ μνκ° μ ν¨ν μνλΌκ³ ν μ μλ€. νλ‘κ·Έλλ° κ΄μ μμ μ΄ν΄λ³΄λ©΄ μ΄λκ°μ μ¬μ©λ μ μλ μνμ΄λ€. λ€μκ³Ό κ°μ μνκ° μλ€. interface State { a: string; b: string; c?: string; d?: string; } μ΄μ κ°μ μνλ λ€μκ³Ό κ°μ΄ μ¬λ¬ κ°μ§ μνλ₯Ό ν¬ν¨νλ€. interface StateOne { a: string; b: string; } interface StateTwo { a: string; b: st..
π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript
1. νμ
νλ¦ μ μ§νκΈ° νμ
μ λ³΄κ° κ·Έλλ‘ μ μ§λλ©΄μ νμ
νλ¦μ΄ κ³μ μ λ¬λλ κ²μ κ°λ°μλ‘ νμ¬κΈ νμ
체ν¬μ λν μ κ²½μ μ€μΌ μ μκ² λμμ€λ€. μ§μ 루νλ₯Ό ꡬννλ κ²λ³΄λ€ λ΄μ₯λ ν¨μν κΈ°λ²κ³Ό λ‘λμ κ°μ μ νΈλ¦¬ν° λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ κ²μ΄ νμ
μ 보λ₯Ό κ·Έλλ‘ μ μ§νλλ° μ ν©νλ€. νμ
μ λ³΄κ° κ·Έλλ‘ μ μ§λλ κ²μ λ€μκ³Ό κ°μ μ₯μ μ κ°μ§κ³ μλ€. νμ
νλ¦μ κ°μ νλ€. κ°λ
μ±μ λμΈλ€. λͺ
μμ μΈ νμ
ꡬ문μ νμμ±μ μ€μΈλ€. λͺ κ°μ§ μμλ₯Ό ν΅ν΄ μ μ°¨ν νλ‘κ·Έλλ°, ν¨μν νλ‘κ·Έλλ° κ·Έλ¦¬κ³ λ‘λμλ₯Ό ν΅ν΄ ꡬννμ¬ μ΄λ€ νΉμ§μ΄ μλμ§ μ΄ν΄λ³΄μ. 2. CSV λ°μ΄ν° νμ±νκΈ° λ€μκ³Ό κ°μ CSV λ°μ΄ν°κ° μλ€. μ΄λ₯Ό νμ±ν΄λ³΄μ. const csvData = `μ°λ,μ μ‘°μ¬,λͺ¨λΈ,μ€λͺ
,κ°κ²© 1997,..
π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript
1. μλ°μ€ν¬λ¦½νΈμμμ λ°°μ΄ 1-1. λ°°μ΄μ Objectμ΄λ€. const array = [1, 2, 3]; typeof array; // Object μλ°μ€ν¬λ¦½νΈμμ λ°°μ΄μ νμ
μ Objectμ΄λ€. 1-2. Objectμ number νμ
μΌλ‘ μ κ·Όμ΄ λΆκ°λ₯νλ€. μλ°μ€ν¬λ¦½νΈμμμ κ°μ²΄λ ν€-κ° ννλ₯Ό κ°μ§κ³ μμΌλ©° ν€λ λ³΄ν΅ string(λλ μ¬λ²) νμ
λ§ κ°λ₯νλ€. λλ¬Έμ μλμ μμμ²λΌ κΈ°μ‘΄μ μ°λ¦¬κ° μμ£Ό λ°°μ΄μ κ°μ μ κ·ΌνκΈ° μν΄ μ¬μ©νλ λ°©λ²μ λΆκ°λ₯νλ€. const array = [1, 2, 3]; array[0]; array[1]; array[2]; νμ§λ§ number νμ
μ ν€λ‘λ μ κ·Όνλ κ²μ μμ΄ μ€λ₯κ° λμ§ μλ μ΄μ λ μλ°μ€ν¬λ¦½νΈ μμ§μμ μλμΌλ‘ string νμ
μΌλ‘ νλ³νμ΄ λκΈ° ..
π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript
1. μΈλ±μ€ μκ·Έλμ²λ? 곡μλ¬Έμμλ μλμ κ°μ΄ μΈλ±μ€ μκ·Έλμ²μ μ¬μ© μμ μ λν΄ μ€λͺ
νκ³ μλ€. Sometimes you donβt know all the names of a typeβs properties ahead of time, but you do know the shape of the values. In those cases you can use an index signature to describe the types of possible values. νμ
μ μμ±μ λͺ¨λ₯΄μ§λ§ κ°μ ννλ₯Ό μκ³ μμ λ, μΈλ±μ€ μκ·Έλμ²λ₯Ό μ¬μ©νμ¬ νμ
μ μ€λͺ
ν μ μλ€. 2. μΈλ±μ€ μκ·Έλμ²μ κΈ°λ³Έ λ¬Έλ² type Props = { [property: string]: string }; Props νμ
μ΄ μλ€...
π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript
1. νμ
μ ν λΉ κ°λ₯ν κ°λ€μ μ§ν© μλ°μ€ν¬λ¦½νΈμμλ λ³μμ λ€μν κ°μ ν λΉν μ μλ€. μ΄λ¬ν κ°λ€μ νμ
μ€ν¬λ¦½νΈκ° λ°νμ μ΄μ μ μ¬κΈ°μ ν λΉν μ μλκ°?λΌλ μλ¬Έμ νκ³ μ€λ₯λ₯Ό 체ν¬νκΈ° μμνλ€. μ€λ₯λ₯Ό ν΅ν΄ νμ
μ€ν¬λ¦½νΈμμμ μ§ν©μ΄λΌλ κ°λ
μ λ€κ°κ°λ³΄μ. 1-1. νμ
μ€λ₯1 νμ
μ€ν¬λ¦½νΈκ° λ§μ½ μ€λ₯λ₯Ό λ°κ²¬νλ©΄ μλμ κ°μ μ€λ₯λ₯Ό λ°κ²¬ν μ μλ€. Type 'number' is not assignable to type 'string'. μ«μ νμ
μ λ¬Έμμ΄μ νμ
μ ν λΉμ ν μ μλ€λ κ²μ΄λ€. μ΄ λ¬Έκ΅¬λ μ§ν©μ κ΄μ μμ μλμ²λΌ ν΄μν μ μλ€. μ«μ νμ
μ λ¬Έμμ΄ νμ
μ λΆλΆ μ§ν©μ΄ μλλ€.(λ νμ
μ κ΄κ³) 1-2. νμ
μ€λ₯2 λ λ€λ₯Έ μ€λ₯λ₯Ό 보며 μ§ν©μ΄λΌλ κ°λ
μ μ λ¦½ν΄ λ³΄μ. ABμ ..
'π₯ νμ
μ€ν¬λ¦½νΈ/Effective Typescript' μΉ΄ν
κ³ λ¦¬μ κΈ λͺ©λ‘
λ¨μΆν€
λ΄ λΈλ‘κ·Έ
λ΄ λΈλ‘κ·Έ - κ΄λ¦¬μ ν μ ν |
Q
Q
|
μ κΈ μ°κΈ° |
W
W
|
λΈλ‘κ·Έ κ²μκΈ
κΈ μμ (κΆν μλ κ²½μ°) |
E
E
|
λκΈ μμμΌλ‘ μ΄λ |
C
C
|
λͺ¨λ μμ
μ΄ νμ΄μ§μ URL λ³΅μ¬ |
S
S
|
맨 μλ‘ μ΄λ |
T
T
|
ν°μ€ν 리 ν μ΄λ |
H
H
|
λ¨μΆν€ μλ΄ |
Shift + /
β§ + /
|
* λ¨μΆν€λ νκΈ/μλ¬Έ λμλ¬Έμλ‘ μ΄μ© κ°λ₯νλ©°, ν°μ€ν 리 κΈ°λ³Έ λλ©μΈμμλ§ λμν©λλ€.