🔷 TypeScript 치트시트
JavaScript에 정적 타입을 추가한 언어
기본 문법
타입 선언
let name: string = "TypeScript";
let age: number = 25;
let isActive: boolean = true;
인터페이스
interface User {
name: string;
age: number;
email?: string;
}
클래스
class Person {
constructor(public name: string, private age: number) {}
greet(): string {
return `Hello, NULL!`;
}
}
제네릭
function identity<T>(arg: T): T {
return arg;
}
const result = identity<string>("hello");
타입 시스템
유니온 타입
type Status = "loading" | "success" | "error";
let currentStatus: Status = "loading";
타입 가드
function isString(value: any): value is string {
return typeof value === "string";
}
타입 단언
const element = document.getElementById("myId") as HTMLInputElement;
옵셔널 체이닝
const name = user?.profile?.name ?? "Unknown";
고급 기능
데코레이터
@Component({
selector: "app-user",
template: "<div>{{user.name}}</div>"
})
export class UserComponent {}
네임스페이스
namespace MyApp {
export class Utils {
static formatDate(date: Date): string {
return date.toISOString();
}
}
}
모듈
export interface User {
id: number;
name: string;
}
export function createUser(name: string): User {
return { id: Date.now(), name };
}