π₯ νμ
μ€ν¬λ¦½νΈ/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μ ..