Best Practice
strict λͺ¨λλ₯Ό true λ‘ ν΄λΌ
default λ‘ TypeScript λ strice mode λ₯Ό μ¬μ©νμ§ μλλ€. μμ§ νλ‘μ νΈκ° μμ ν TypeScript ν λμ§ μμμ λλ strict mode false κ° μ μ©ν μ μλ€. (ex - JacaScript νμΌμ μΌλΆλ§ TypeScript λ‘ λ³κ²½). νμ§λ§ μ΄κ²μ μλ°μ€ν¬λ¦½νΈμμ λ§μ λ²κ·Έλ€μ΄ TypeScript μμ κ±Έλ¦¬μ§ μλλ€.
stirict mode λ₯Ό true λ‘ νμ§ μμΌλ©΄ TypeScript λ λͺ¨λ λ§€κ° λ³μ λ° λ³μμ λν΄μ null, undefined λ₯Ό μ§μ ν μ μλλ‘ ν μ μκ² νλ€.(any) μ½λμ κ°λ
μ± λ° κ°λ°μ μμ°μ± ν₯μ μΈ‘λ©΄μμ TypeScript μ μ₯μ μ μ λλ‘ λ리기 μν΄μ strict λ₯Ό true λ‘ νλ κ²μ΄ μ’λ€.
tsc λμ μ babel μ μ¬μ©νλ€
λ°λ²¨ 7 λ²μ Ό μ΄νλ‘ TypeScript κ° μ§μλλ€. tsc λ₯Ό ν΅ν΄μκ° μλλΌλ JavaScript νμΌλ‘ λ³νμν¬ μ μλ€.
babel μ tsc λ³΄λ€ λΉ λ₯Ό λΏλ§ μλλΌ, λ°λ²¨ μνκ³μ λ€λ₯Έ μμ€ν
λ€λ μ¬μ©ν μ μλ€.
ESLint λ₯Ό μ¬μ©ν΄λΌ. tslint λ deprecated λμλ€
Do's and Don'ts
primitive νμ μ μ¬μ©ν΄λΌ
Number, String, Boolean λ±μ primitive ν νμ
μ νννμ§ μλλ€.
Object λν TypeScript μμ object κ° μΆκ°λμμΌλ object λ₯Ό μ¬μ©νμ
/* WRONG */
function reverse(s: String): String;
/* OK */
function reverse(s: string): string;
JavaScript
볡μ¬
return type μΌλ‘ anyλ₯Ό μ¬μ©νμ§ μλλ€
/* WRONG */
function fn(x: () => any) {
x();
}
/* OK */
function fn(x: () => void) {
x();
}
function fn(x: () => void) {
var k = x(); // oops! meant to do something else
k.doSomething(); // error, but would be OK if the return type had been 'any'
}
JavaScript
볡μ¬
void λ₯Ό μ¬μ©νλκ² μμμΉ λͺ»ν κ°μ return νλ κ²λ³΄λ€ μμ νκΈ° λλ¬Έμ΄λ€.

