μ΅λν λ΄κ° μ΄ν΄νλλ§νΌ μ λλ‘ λ Έλ ₯νκ² μ΅λλ€. κ°μ΄ 곡λΆνλ μ μ₯μμ μ κ² μ΅λλ€.
μλ°μ€ν¬λ¦½νΈλ₯Ό νκ² λλ©΄ λΉμ°νκ² λ§μ£Όνλ λ¬Έμ λ νμ μ κ΄ν μ΄μμ μ’ λ OOPμ€λ½κ² 지 μ μμκΉ νλ μκ°μ΄λ€.
κ·Έλ° λ¨κ³λ₯Ό μ΄λ₯΄κ² λλ©΄ λΉμ°νκ² νλ²μ―€μ TypeScript
λΌλ μμ΄λ₯Ό μκ°νκ² λλ€.
μ λ μ΄λ² κΈ°νμ νλ² κ³΅λΆνλ €κ³ ν©λλ€.
(λͺ¨λ λ΄μ©μ κΈ°μ€μ TypeScript
곡μ μ¬μ΄νΈ HandBook
κΈ°μ€μ
λλ€.)
TypeScript
μ κΈ°λ₯λ€μ ν¬κ² 보면 μ μ νμ΄νκ³Ό ECMAScript ꡬνμΌλ‘ λλ μ μλ€.
Type annotation
& μ μ νμ 체ν¬- νμ μΆλ‘
Interfaces
ES2015 Features
let & const
Block scope
Arrow functions
Classes
Promise
Etcβ¦
Namespaces & Modules
(CommonJS, ES2015, AMD
)Generic
Mixin
TypeScript
μμ μ 곡νλ κΈ°λ³Έμ μΈ νμ
μ λν΄μ μ 리λ₯Ό μμν΄λ³΄μ
let isDone: boolean = false;
κΈ°λ³Έμ μΌλ‘ νμ
μ μΈμ μ½λ‘ (:)
λ₯Ό μ°κ³ λ€μ νμ
μ μ μΈνλ©΄ λλ€. μκ°λ³΄λ€ νμ
μ μ μΈνλ λ°©λ²μ κ°λ¨νκ² λμ΄μλ€.
ν¨μλ₯Ό μ¬μ©ν λλ μ½λ‘ (:)
μ μ¬μ©ν΄μ λνλ΄λ©΄ κ·Έλ°λ° λͺ¨μμλ₯Ό μ΄μ§Έ μ΄μνλ€.(μ²μ보λ λ΄ κΈ°μ€μΈ κ² κ°λ€)
function echo(param: string): string {
return param;
}
JavaScript
μμλ JavaScript primitive type
λ€μ λν΄ Wrapper
κ°μ²΄λ₯Ό μ 곡νλ€. TypeScript
μμλ μ¬μ©μ΄ κ°λ₯νλ€.
const isLiar: boolean = true; // OK
const isTruth: Boolean = false; // OK
κ°κΈμ μ΄λ©΄ boolean
μ μ¬μ©νλ κ²μ΄ κΆμ₯λλ€. new Boolean()
μΌλ‘ μμ±ν κ°μ boolean
νμ
μ ν λΉν μλ μμΌλ κ·Έ λ°λλ μλκΈ° λλ¬Έμ΄λ€.
const isLiar: boolean = new Boolean(true); // OK
const isTruth: Boolean = false; // Error: Type 'Boolean' is not assignable to type 'boolean'.
// 'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.
리ν°λ΄ λ¬Έλ² λμ μ λ κ² Wrapper
κ°μ²΄λ₯Ό μ΄μ©νμ¬ μμ±μλ₯Ό νΈμΆνλ κ²μ΄ JavaScript
μμλ κΆμ₯νμ§ μλ λ°©λ²μ΄λ€.
Number & number
, String & string
λ±μμλ νμ
μ λͺ
μν λ μ¬μ©νμ§ λ§μ
let isDone: boolean = false;
λͺ¨λκ° μκ³ μλ true || false
νμ
μ΄λ€. λ무 λλ μ¬νν΄μ μ μ κ²μ΄ μλ€.
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
μ°λ¦¬κ° μκ³ μλ―μ΄ μ«μλ₯Ό λνλ΄λ Number
νμ
μ΄λ€. λ§μ°¬κ°μ§λ‘ 2μ§μ 8μ§μκ° λλ€. μ΄λ ECMA2015
λ₯Ό μ§μνλ€λ λ§κ³Ό λμΌνλ€.(λͺ¨λκ° μκ³ μκ² μ§λ§ ES6
μμ μΆκ°λ¨)
λͺ¨λκ° μμκ³ μλ λ¬Έμμ΄νμ μ΄λ€.
let fullName: string = `Bob Bobbington`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ fullName }.
I'll be ${ age + 1 } years old next month.`;
μλ°μ²λΌ <>
μ λ€λ¦μ΄ μκ²Όλ€ μ κΈ°λ°©κΈ°νλ€. (νλνλμ λλΌλμ€...)
let list: number[] = [1, 2, 3]; // λ°©λ² 1
let list: Array<number> = [1, 2, 3]; // λ°©λ² 2
λλΌλ©΄ μλμ²λΌ μ¬μ©ν λ― νλ€.
declare function create(o: object | null): void;
create({ prop: 0 }); // OK
create(null); // OK
create(42); // Error
create("string"); // Error
create(false); // Error
create(undefined); // Error
ν¬μνλ€ Object
νμ
μΈλ° Number String Blooean
μ΄ μλλ€.
β κΈ°μ‘΄μ Java
μμλ λΉμ°νκ² μμ νμ
μΈ Objectλ‘ μ μΈμ νλ€λ©΄ String
, Int
λ±μΌλ‘ λ³νμ΄ κ°λ₯νλλ° λ§μ΄λ€.
let onlyNull: null = null;
onlyNull = undefined; // OK
onlyNull = false; // error: Type 'boolean' is not assignable to type 'null'.
곡μ λ¬Έμμ μλ€κ³ νλ€. κ·Έλ°λ° Null
, Undefined
λ‘ μ μΈμ νλ©΄ μ΄λμ μ¬μ©μ νλ κ²μΌκΉ? μμ§κΉμ§ κ²½νμ΄ μμ΄μ λͺ¨λ₯΄κ² λ€.