2025/08/14 8

#타입 추론 #타입 단언 #타입 가드

타입 추론타입스크립트는 타입을 선언하지 않아도 변수의 타입을 추론하는 능력을 가지고 있다.그래서 타입스크립트가 예측할 것 같은 불필요한 타입선언들은 지워줘도 된다.타입 단언타입 단언은 "타입스크립트. 너보다 내가 더 잘 아니까 신경 안써도돼."라고 하는 것과 같다.var nabeen = {} as Person;// 그냥 {} 선언하면 일반 객체로 추론함.// as Person을 추가하면 Person 객체로 추론함. 타입 에러 방지 가능. 가급적이면 타입 단언보다 타입 추론에 의존하는게 좋다.타입 가드타입 가드는 타입을 걸러냄으로써 타입스크립트가 추론하게끔 한다.if문과 같이 쓴다.종류로는 typeof (그 타입인지), instanceof (그 클래스의 인스턴스인지), in (그 객체 안의 key인지), ..

typescript 2025.08.14

class

클래스를 선언할 때, 기존 자바스크립트와 다른 점은 "프로퍼티의 타입을 미리 지정"해야한다는 점이다.class Book { name: string; // 여기가 다름! constructor(name: string) { this.name = name; } sum(a: number, b: number): number { return a + b; }} 변경되면 위험한 중요 프로퍼티들이 있다면 접근 제어자를 이용하자.클래스의 접근 제어자는 3가지 (public, private, protected)가 있다.public(기본)은 모두 rw(read, write) 가능, private은 클래스 내부에서만 rw 가능, portected는 상속된 클래스 내부에서만 rw 가능이다.주의해야..

카테고리 없음 2025.08.14

enum

enum은 카테고리처럼 공통분모가 있는 여러 상수들을 한 곳에 모아놓고 쓰고 싶을 때 쓴다.const enum Drink { Coffee = 1.03; Smoothie = 2.06; Ade = 1.1;}const newDrink: Drink = Drink.Coffee;console.log(newDrink); // 1.03for (let i=0; i위 코드는 이넘 값들에 가격을 넣을 것이다.만약 =을 쓰지 않을 경우, 0, 1, 2, 3 이 순서대로 대입된다. 참고로, 이넘 선언할 때 const를 쓰면 트랜스파일 후 코드양이 확연히 줄어든다.

typescript 2025.08.14

type vs. interface

둘 다 객체의 타입을 지정할 수 있다.개발자의 선호에 따라 원하는 걸 사용한다. 다만, 타입에서는 number | string 과 같이 유연하게 타입을 다룰 수 있고, 후술할 제네릭과 유틸리티 타입을 쓸 수도 있다.또한, 타입은 프로퍼티들의 타입을 미리보기 할 수 있다. 인터페이스는 전에 배운 extends 를 사용할 수 있어서 상속할 수 있고, 선언 병합을 사용할 수 있기 때문에 확장에 유연하다.프론트엔드와 백엔드의 프로퍼티 타입 지정을 할 때는 자주 바뀌기 때문에 인터페이스를 쓰면 유용하다.

typescript 2025.08.14