#1 Language π (47) μΈλ€μΌν 리μ€νΈν [Typescript] λ°μ½λ μ΄ν° Decorators λ©ν νλ‘κ·Έλλ° νλ λ° λ§€μ° μ μ©νκ² μ¬μ© λ¨ λ©ν νλ‘κ·Έλλ°μ΄λ? end userκ° νμ΄μ§λ₯Ό λ°©λ¬Ένλλ°, λ³΄ν΅ κ³§λ°λ‘ μν₯μ μ£ΌκΈ°μ λ°μ½λ μ΄ν°λ₯Ό μ¬μ©νμ§ μμ λμ μ μ½λλ₯Ό μ°λ λ° μ ν©νλλ‘ λ§λ€μ΄ λ°μ½λ μ΄ν°λ₯Ό λ€λ₯Έ κ°λ°μλ€μ΄ μ¬μ©νκΈ° μ½κ² ν¨ λ°μ½λ μ΄ν°λ μ€μ²΄νλκΈ° μ ν΄λμ€κ° μ μλ§ λΌλ μ€ν λ¨ function Logger(constructor: Function) { console.log("Logging..."); console.log(constructor); } @Logger class Person1 { name = "Yum"; constructor() { console.log("Creating person object..."); } } const pers = new Person1(); co.. [Typescript] μ λ€λ¦ Generic <T> λ°°μ΄ νμ μ΄λ€ νμ μ λ°μ΄ν°κ° μ μ₯λλ μκ΄νμ§ μμΌλ©° μ μ₯νλ μμκ° λ¬Έμμ΄ λͺ©λ‘, μ«μν λͺ©λ‘, κ°μ²΄ λͺ©λ‘, νΌν©λ λ°μ΄ν°μ λͺ©λ‘μ΄λ μκ΄νμ§ μμ§λ§ μ μ΄λ μ λ³΄κ° μ μ₯λλ κ²μΈμ§μ λν΄μλ νμΈ ν¨ μ λ€λ¦ νμ Generic νμ μμ μ±κ³Ό κ²°ν©λ μ μ°μ±μ μ 곡 μ λ¬νλ κ°μ΄λ ν΄λμ€μμ μ¬μ©νλ κ°μ μ μ°νκ² μ§μ ν μ μμ μΆκ°ν μ μ½ μ‘°κ±΄μ΄ μλ€λ©΄ κ·Έ μ‘°κ±΄λ§ μ€μνλ©΄ λ¨ const names: Array = []; // string [] const names: Array = []; // string [], number [] promise νμ const promise: Promise = new Promise((resolve, reject) => { setTimeout(() => { resolv.. [Typescript] κ³ κΈ νμ νμ κ°λ Narrowing μμ½ typeof λ³μ μμ±λͺ in μ€λΈμ νΈ μλ£ μΈμ€ν΄μ€ instanceof λΆλͺ¨ νμ κ°λλ νΉμ μμ±μ΄λ λ©μλλ₯Ό μ¬μ©νκΈ° μ μ κ·Έκ²μ΄ μ‘΄μ¬νλμ§ νμΈνκ±°λ νμ μ μ¬μ©νκΈ° μ μ μ΄ νμ μΌλ‘ μ΄λ€ μμ μ μνν μ μλμ§λ₯Ό νμΈνλ κ°λ λ°νμ μ νΉμ νμ μΌλ‘ μμ μ μννκΈ° μ μ ν΄λΉ νμ μ κ²μ¬νλ μ½λ ν¨ν΄ μμ μ μννκΈ° μ μ νμ μ κ²μ¬νμ¬ λ°νμ μ€λ₯λ₯Ό λ°©μ§ν μ μμ κ°μ²΄μ κ²½μ°, instanceofλ inμ μ¬μ© λ€λ₯Έ νμ λ€μ κ²½μ° typeofλ₯Ό μ¬μ© // typeof type Combinable = string | number; function add(a: Combinable, b: Combinable){ if(typeof a === 'string' ||.. [Typescript] ν΄λμ€ & μΈν°νμ΄μ€ private : μμ±λ κ°μ²΄ λ΄λΆμμλ§ μ κ·Ό κ°λ₯ν μμ± protected : privateκ³Ό λΉμ·νμ§λ§ privateκ³Ό λ€λ₯Έ μ μ μ΄ ν΄λμ€μμλΏ μλλΌ μ΄ ν΄λμ€λ₯Ό νμ₯νλ λͺ¨λ ν΄λμ€μμλ μ¬μ© κ°λ₯ ν¨ readonly ν€μλ μ΄κΈ°ν μ€μ ν λ²λ§ μ¬μ© κ°λ₯ νΉμ μμ±μ΄ μ΄κΈ°ν λκ³ λλ©΄ μ΄νμλ λ³κ²½λμ΄μλ μλ¨ μΆκ°μ μΈ νμ μμ μ±μ λν΄μ£Όκ³ μλλ₯Ό λͺ ννκ² ν΄μ€ μ½μ μ΄κΈ°ν // μ΄κΈ°ν μ½μ μ class Department { private id: string; private name: string; private employees: string[] = []; constructor(id: string, name: string) { this.id = n; this.name = n; } } /.. [Typescript] ꡬ쑰 λΆν΄ βοΈ κ΅¬μ‘° λΆν΄λ? βοΈ λ°°μ΄μμ μμλ₯Ό μΆμΆνλ κ² const [hobby1, hobby2, ...remainingHobbies] = hobbies; 첫λ²μ§Έ μμ hobby1 μ΄λΌλ μ΄λ¦μΌλ‘ constμ μ μ₯ λλ²μ§Έ μμ hobby2 λΌλ μ΄λ¦μΌλ‘ constμ μ μ₯ λ¬Έμμ΄μ μμκ° 2κ° μ΄μμΈ κ²½μ° λ§€κ°λ³μλ₯Ό μΆκ°νμ¬ hobby1, hobby2μμ μΆμΆνμ§ μμ λλ¨Έμ§ μμκ° λͺ¨λ remainingHobbiesλΌλ μ λ°°μ΄μ μ μ₯λλ―λ‘ ν΄λΉ λ°°μ΄μ λ³ν© λ¨ κ΅¬μ‘° λΆν΄λ μλμ λ°°μ΄μ λ°κΎΈμ§ μμ μλ‘μ΄ λ°°μ΄λ‘ μμ± λ°°μ΄μ μ λ ¬λ λͺ©λ‘μ΄λ―λ‘ μμλ μμλλ‘ μΆμΆ λ¨ νμ§λ§ μμκ° νμ 보μ₯λμ§λ μμ μμΉλ³λ‘ μμλ₯Ό μΆμΆνλ κ²μ΄ μλ ν€ μ΄λ¦μΌλ‘ μμλ₯Ό μΆμΆ ν¨ λ°°μ΄λΏλ§ μλλΌ κ°μ²΄λ λμΌνκ² μ¬μ© λ§.. [Typescript] TypeScript μ»΄νμΌλ¬(λ° κ΅¬μ±) watch mode : λ³κ²½μ¬νμ΄ μμλλ§λ€ μλμΌλ‘ μ»΄νμΌ tsc app.ts -w λ¨μ μ μ΄ νμΌμ ꡬ체μ μΌλ‘ μ§μ ν΄μΌ ν¨ κ·Έλ κΈ° λλ¬Έμ ν° νλ‘μ νΈμμλ λ³΄ν΅ μ¬μ©νμ§ μμ λͺ¨λ tsνμΌ μ»΄νμΌ tsc —init : tsconfig.json νμΌ μμ± μ΄ νλ‘μ νΈλ₯Ό νμ μ€ν¬λ¦½νΈ νλ‘μ νΈλΌκ³ μ²μμ μ§μ νλ©΄μ ν λ²λ§ μ€ννλ©΄ λ¨ μ΄ νλ‘μ νΈλ νμ μ€ν¬λ¦½νΈκ° κ΄λ¦¬νλ€λ λ» μ΄ μ»€λ§¨λκ° μ€νλλ ν΄λμ λͺ¨λ νλͺ©μ μλ €μ£Όλ μν λ°λΌμ μ¬λ°λ₯Έ ν΄λμ μμΉνλ κ²μ΄ μ€μ tsc : λͺ¨λ tsνμΌ μ»΄νμΌ μλμΌλ‘ jsνμΌ μμ± λͺ¨λ νμ μ€ν¬λ¦½νΈ νμΌμ κ΄μ°° λͺ¨λ μ μ©νκΈ° λͺ¨λ tsνμΌ μ»΄νμΌ ν ν tsc -w μ λ ₯νλ©΄ λͺ¨λ tsνμΌμ κ΄μ°° λͺ¨λκ° μ μ© λ¨ μ΄μ λ³κ²½ μ¬νμ μ μ©νκ³ μ μ₯νλ©΄ λ³κ²½λ νμΌμ΄.. [Typescript] Typescript κΈ°λ³Έ & κΈ°λ³Έ νμ Using Type number JSλ TSμμ number νμ μ νλλΏ string ‘Hi’, “Hi”,Hi boolean true, false μλ°μ€ν¬λ¦½νΈ μ°¨μ΄ μλ°μ€ν¬λ¦½νΈλ λμ νμ λ¬Έμμ΄μ ν λΉν λ μ²μμ μ«μν λ³μκ° μλλΌλ μ ν λ¬Έμ μμ κ·Έλμ νΉμ νμ μ μμ‘΄νλ μ½λκ° μλ κ²½μ°, λ°νμμμ νμ¬ νμ μ νμΈν μ μλ typeofλ₯Ό μ¬μ© λ°λ©΄, νμ μ€ν¬λ¦½νΈλ μ μ νμ λ³μμ λ§€κ°λ³μμ νμ μ λ¨Όμ μ μν¨ λ°νμ μ€μ κ°μκΈ° λ³κ²½λμ§ μμ μ«μνμΌλ‘ μ€μ ν λ³μμ λ¬Έμμ΄μ ν λΉνλ©΄ μλ¬λ°μ νμ μ€ν¬λ¦½νΈλ μλ°μ€ν¬λ¦½νΈλ³΄λ€ ν¨μ¬ λ§μ νμ μ μκ³ μμ κ²°λ‘ : νμ μ€ν¬λ¦½νΈ νμ μ μ»΄νμΌ μ€μ νμΈλλ λ°λ©΄, μλ°μ€ν¬λ¦½νΈ νμ μ λ°νμ μ€μ νμΈ λ¨ μΆκ°: νμ μ€ν¬λ¦½νΈλ νμ μ λͺ μμ .. [Javascript] λͺ¨λ (Module) λͺ¨λν(Modularity) νλ‘κ·Έλλ°μ λͺ©ν ν° νλ‘κ·Έλ¨μ μ½λ λͺ¨λλ‘ λΆλ¦¬ν΄μ λͺ¨λ κ°λ°μκ° μμΈ‘νμ§ λͺ»ν μν©μμλ μ½λ μ μ²΄κ° μ νν μ€νλλλ‘ νκΈ° μν¨ μ€μ©μ μΈ κ΄μ μμ (Modularity)λ νλ‘κ·Έλ¨μ μΈλΆ μ¬νμ μΊ‘μννκ³ μ μ λ€μ μ€νμ΄μ€λ₯Ό κΉλνκ²μ μ§ν΄μ λͺ¨λμ΄ λ€λ₯Έ λͺ¨λμ λ³μ, ν¨μ, ν΄λμ€λ₯Ό μμ νλ μ¬κ³ λ₯Ό λ§λ κ²μ λ§ν¨ μλ°μ€ν¬λ¦½νΈμμμ λͺ¨λ μ΅κ·ΌκΉμ§ μλ°μ€ν¬λ¦½νΈλ λͺ¨λμ μ§μνμ§ μμκ³ ν° νλ‘μ νΈ λ¨μλ‘ μΌνλ νλ‘κ·Έλλ¨Έλ ν΄λμ€, κ°μ²΄, ν΄λ‘μ μμ νμλ λ―Έμ½ν λͺ¨λμ±μ μ΅λν μ΄μ©ν΄μΌ νμ ν΄λ‘μ κΈ°λ° λͺ¨λμ±μ΄ μ½λ λ²λ€λ§λꡬμ μ§μμ νμ μ΄ require( ) ν¨μλΌλ ννλ‘ μ€μ©ν λμΌλ©° λ Έλμμ μ΄ μμ€ν μ λμ require( )μ κΈ°λ°ν λͺ¨λμ λ Έλ νλ‘κ·Έλ.. μ΄μ 1 2 3 4 Β·Β·Β· 6 λ€μ