반응형

📝as const

// 'status'의 타입은 리터럴 타입 "loading"으로 고정
const status = "loading" as const;

// [1,2,3]만 허용
const numbers = [1, 2, 3] as const;

리터럴 타입의 값을 그대로 타입으로 사용하게 만드는 역할이며 해당 값이 변하지 않을 "상수"임을 나타내며 TypeScript 컴파일러에게 값의 재할당이나 변경을 방지합니다

 

📝!postfix

function liveDangerously(x?: number | null) {
  // No error
  console.log(x!.toFixed());
}

!의 경우 해당 값은 Null이나 Undefined가 아니라는 강제성을 부여하는 명시입니다

데이터를 fetch한 이후에 undefined일수도 있다고 에러를 잡아줄 때 있는데 반드시 있는 경우라면 !을 이용해 처리가 가능합니다

 

📝optional

function printName(obj: { first: string; last?: string }) {
  // ...
}

printName({ first: "Bob" });
printName({ first: "Alice", last: "Alisson" });

? 을 이용해 "값이 없을 수 있다"라고 선언 가능

반응형