π Front-End/TypeScript
ES6 μ λΉμ· ν©λλ€. λͺ¨λμ μ μ λ³μμ ꡬλΆλλ μ체 μ ν¨ λ²μλ₯Ό κ°μ§λ©° export, import μ κ°μ ν€μλλ₯Ό μ¬μ©νμ§ μμΌλ©΄ λ€λ₯Έ νμΌμμ μ κ·Όν μ μμ΅λλ€. μ¬μ©λ°©λ² β Export ES6μ exportμ κ°μ λ°©μμΌλ‘ λ³μ, ν¨μ, νμ
, μΈν°νμ΄μ€ λ±μ λΆμ¬ μ¬μ©ν©λλ€. // types.ts export interface Todo { title: string; checked: boolean; } β Import ES6μ importμ λμΌν λ°©μμΌλ‘ μ¬μ©ν©λλ€. // app.ts import { Todo } from './types' let item: Todo = { title: 'ν μΌ 1', checked: false } β Tip import λ₯Ό μ
λ ₯νκ³ {} λΉ κ°μ²΄λ₯Ό λ¨Όμ ..
π Front-End/TypeScript
νμ
μ€ν¬λ¦½νΈ μ½λμμ νΉμ νμ
μ΄ λ€λ₯Έ νμ
μ μ λ§λμ§λ₯Ό μλ―Έν©λλ€. β ꡬ쑰μ νμ΄ν μμ ꡬ쑰μ νμ΄ν(structural typing)μ΄λ μ½λ ꡬ쑰 κ΄μ μμ νμ
μ΄ μλ‘ νΈνλλμ§μ μ¬λΆλ₯Ό νλ¨νλ κ²μ
λλ€. β μΈν°νμ΄μ€ interface Developer{ name: string; skill: string; } interface Person{ name: string; } let developer: Developer; let person: Person; developer = person; // μλ¬μ΄μ : μΌμͺ½μ μλ λ³μκ° λ ν° κ΄κ³λ₯Ό κ°μ§κ³ μμ΄μ person = developer; // μλ¬κ° μλ¬λ€. μ€λ₯Έμͺ½μ μλ νμ
μ΄ λ λ§μ μμ±μ κ°μ§κ±°λ, ꡬ쑰μ μΌλ‘ λ μ»Έμ λ μΌμͺ½κ³Ό νΈνμ΄..
π Front-End/TypeScript
νΉμ νμ
μΌλ‘ νμ
μ λ²μλ₯Ό μ’νλκ°λ(νν°λ§ νλ) κ³Όμ μ€λͺ
νκΈ° μν μ¬μ μμ interface Developer{ name: string; skill: string; } interface Person { name: string; age: number; } function introduce(): Developer | Person{ return {name: 'Tony', age: 33, skill:"Iron Making"} } let tony = introduce(); console.log(tony.skill); // μ λμ¨ νΉμ§μ μν΄ μ κ·Ό λΆκ° // νμ
λ¨μΈμ μ¬μ©νμ¬ μ κ·Ό if((tony as Developer).skill){ let skill = (tony as Developer).skill..
π Front-End/TypeScript
νμ
μ€ν¬λ¦½νΈ λ³΄λ€ κ°λ°μκ° λ νμ
μ μ μκ³ μλ€λ κ°μ μ νκ³ 'κ°λ°μκ° μ μν νμ
μΌλ‘ κ°μ£Όλ₯Ό ν΄λΌ' λΌλ μλ―Έ μ
λλ€. as ν€μλ μ¬μ©ν ν νμ
μ κΈ° let a; // νμ
μΆλ‘ μ μν΄ any νμ
a = 20; a = 'a'; let b = a; // aμ νμ
μ΄ λ°λκ³ ν λΉμ νμ¬λ μμ§ νμ
μΆλ‘ μ μν΄ a: any νμ
// 맨 μ²μ ν λΉν νμ
μ κ°μ΄ κ·Έλλ‘ bμ λ€μ΄κ°μ b: any νμ
κ°λ°μκ° λ³΄λ κ΄μ μμλ a κ° string μ΄ λ κ²μ΄λΌκ³ μ μ μμ΅λλ€. νμ§λ§ νμ
μ€ν¬λ¦½νΈ κ΄μ μμλ κ·Έλ μ§ μμ΅λλ€. μλμ κ°μ΄ μ¬μ©νλ©΄ νμ
μ΄ κ°λ°μμ κ΄μ μΌλ‘ λ¨μΈμ΄ λ©λλ€. let b = a as string; a λΌλ κ²μ string μΌλ‘ κ°μ£Ό ν©λλ€. μ¦, b μ νμ
μ str..
π Front-End/TypeScript
νμ
μΆλ‘ μ΄λ νμ
μ€ν¬λ¦½νΈκ° μ½λλ₯Ό ν΄μν΄ λκ°λ λμμ μλ―Έν©λλ€. β νμ
μΆλ‘ μ κΈ°λ³Έ let x = 3; μμ κ°μ΄ xμ λν νμ
μ λ°λ‘ μ§μ νμ§ μλλΌλ μΌλ¨ xλ numberλ‘ κ°μ£Όλ©λλ€. μ΄λ κ² λ³μλ₯Ό μ μΈνκ±°λ μ΄κΈ°ν ν λ νμ
μ΄ μΆλ‘ λ©λλ€. μ΄μΈμλ λ³μ, μμ±, μΈμμ κΈ°λ³Έ κ°, ν¨μμ λ°ν κ° λ±μ μ€μ ν λ νμ
μΆλ‘ μ΄ μΌμ΄λ©λλ€. β μΈν°νμ΄μ€μ μ λ€λ¦μ μ΄μ©ν νμ
μΆλ‘ interface Dropdown{ value: T; title: string; } let shoppingItem: Dropdown = { value: 'abc', title: 'hello' } μ λ€λ¦μ μ΄μ©ν΄ string μ λκ²ΌκΈ° λλ¬Έμ, value μ νμ
μ stringμ΄ λ©λλ€. interface Dro..
π Front-End/TypeScript
β μ¬μ μ μ μ μ λ€λ¦μ C#, Java λ±μ μΈμ΄μμ μ¬μ¬μ©μ±μ΄ λμ μ»΄ν¬λνΈλ₯Ό λ§λ€ λ μμ£Ό νμ©λλ νΉμ§μ
λλ€. νΉν, νκ°μ§ νμ
λ³΄λ€ μ¬λ¬ κ°μ§ νμ
μμ λμνλ μ»΄ν¬λνΈλ₯Ό μμ±νλλ° μ¬μ©λ©λλ€. μ λ€λ¦(Generics) μ μ β μ λ€λ¦μ΄λ νμ
μ λ§μΉ ν¨μμ νλΌλ―Έν°μ²λΌ μ¬μ©νλ κ² β κΈ°λ³Έμ μΈ λ¬Έλ² ν€μλ μ¬μ© // JS ν¨μ μ¬μ© μ function logText(text){ console.log(text); return text; } logText(10); // μ«μ logText('hello'); // λ¬Έμμ΄ logText(true); // μ§μκ° // TS - μ λ€λ¦ function logText(text: T):T{ console.log(text); return text; } logT..
π Front-End/TypeScript
β μλ°μ€ν¬ννΈμ ν΄λμ€ // κΈ°μ‘΄μ μμ±μ ν¨μ function Person(name, age){ this.name = name; this.age = age; } var seho = new Person('μΈνΈ', 30) // ν΄λμ€ class Person{ // ν΄λμ€ λ‘μ§ constructor(name, age){ console.log('μμ± λμμ΅λλ€'); this.name = name; this.age = age; } } var seho = new Person('μΈνΈ', 30); console.log(seho) μμ λ κ°μ μ½λλ κ°μ΅λλ€. β νμ
μ€ν¬λ¦½νΈμ ν΄λμ€ λ¬Έλ²μ μΈ μ°¨μ΄κ° μμ΅λλ€. class Person { name: string; // class μμμλ§ μ¬μ©νκ³ μΆμΌλ©΄ μμ pri..
π Front-End/TypeScript
νΉμ κ°λ€μ μ§ν©μ μλ―Ένλ μλ£ν β μ«μν μ΄λ enum Shoes{ Nike, // 0 Adidas // 1 } let myShoes = Shoes.Nike; console.log(myShoes); // 0 λ³λμ κ°μ μ§μ νμ§ μμΌλ©΄ μ«μνμΌλ‘ μ·¨κΈ ν©λλ€. enum Direction { Up = 1, Down, Left, Right } // κ²°κ³Ό Up - 1 Down - 2 Left - 3 Right - 4 β λ¬Έμν μ΄λ enum Shoes{ Nike = 'λμ΄ν€', Adidas = 'μλλ€μ€' } let myShoes = Shoes.Nike; console.log(myShoes);// 'λμ΄ν€' μμ β μ¬μ©νκΈ° μ function askQuestion(answer: string){ if(a..