deep-dive-everything / typescript-with-react

우아한 타입스크립트 with 리액트 스터디
0 stars 0 forks source link

NonNullable 타입에 대해 설명해주세요. #19

Closed hotdog1004 closed 3 weeks ago

hotdog1004 commented 1 month ago

📚 171p - 173p 📌 NonNullable 타입이 무엇인지 설명 후 NonNullable 타입을 사용한 타입 가드 예시를 작성해주세요.

kwonhygge commented 4 weeks ago

NonNullable 타입은 타입스크립트에서 제공하는 유틸리티 타입으로 제네릭으로 받는 T가 null 또는 undefined일 때 never 또는 T를 반환하는 타입입니다. NonNullable을 사용하면 null이나 undefined가 아닌 경우를 제외할 수 있습니다.

type NonNullable<T> = T extends null | undefined ? never : T;

타입가드 예시

function isNonNullable<T>(value: T): value is NonNullable<T> {
  return value !== null && value !== undefined;
}
hotdog1004 commented 4 weeks ago

NonNullable 타입

타입스크립트에서 제공하는 유틸리티 타입으로 제네릭으로 받는 T가 null 또는 undefined 일 때 never 또는 T를 반환하는 타입입니다. 이 유틸리티 타입을 통해 null 이나 undefined가 아닌 경우를 제외할 수 있습니다.

예시

function NonNullable<T>(value:T): value is NonNullable<T> {
   return value !== null && value !== undefined;
}
samseburn commented 3 weeks ago

NonNullable 타입은 타입스크립트의 유틸리티 타입으로, 제네릭으로 T를 받아 null과 undefined를 제거합니다. 즉, T가 null이나 undefined일 경우 이를 제외한 나머지 타입만 남게 만드는 유틸리티 타입입니다.

타입 가드: isNonNullable

const value: string | null = "Hello" if (isNonNullable(value)) { console.log(value.length) }

frogk commented 3 weeks ago
  1. 타입스크립트에서 제공하는 유틸리티 타입. 제네릭으로 받는 T가 null 또는 undefined일 때 never 또는 T를 변환하는 타입이다. null 이나 undefined가 아닌 경우를 제외할 수 있음.
function isNonNullable<T>(value: T): value is NonNullable<T> {
  return value !== null && value !== undefined;
}

const age = number | null | undefined = 30;

if (isNonNullable(age)) {
  console.log(age); // 30
else {
  console.log("null or undefined");
}
limejin commented 3 weeks ago

TS가 제공하는 유틸리티 타입 중 하나로 특정 타입에서 null과 undefined를 제거한 타입을 만듭니다.

type Example = string | number | null | undefined;
type NonNullableExample = NonNullable<Example>;

위에서 NonNullableExample 타입은 null과 undefined는 제거되어 string | number가 됩니다