상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
파킹통장은 비상금 통장으로 적절한가?
구글 기프트카드는 아이폰에서도 사용할 수 있나요?
구글 기프트카드 등록 후 바로 사용할 수 있나요?
거짓말을 하면 본인도 죄책감을 느낄까?
거짓말을 하는 사람은 자존감이 낮은 걸까?
인간관계에서 솔직함은 어디까지 필요할까?
벽걸이 에어컨 청소 후 바람 냄새가 이상해요.
벽걸이 에어컨 청소 후 배수 냄새가 올라와요.
노인 요양원 비용은 한 달에 얼마인가요?
노인 요양원 주말 면회도 가능한가요?
대상포진 예방접종은 스테로이드 복용 중에도 가능한가요?
대상포진 예방접종은 재발 방지에 효과가 있나요?
Previous
Next
수정하기 - 타입스크립트에서 NonNullable 타입은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
TypeScript에서 `NonNullable` 타입은 특정 타입에서 `null`과 `undefined`를 제거하는 유틸리티 타입입니다. 이 타입은 TypeScript의 내장 유틸리티 타입 중 하나로, 주로 타입 안전성을 높이고, 코드의 가독성을 향상시키기 위해 사용됩니다. 기본 개념 TypeScript는 정적 타입 시스템을 제공하여 개발자가 코드 작성 시 타입 오류를 사전에 방지할 수 있도록 돕습니다. 그러나 JavaScript의 동적 특성 때문에 `null`이나 `undefined`와 같은 값이 자주 사용됩니다. 이러한 값들은 종종 변수의 초기값이나 특정 조건에서의 반환값으로 사용되기 때문에, 타입 시스템에서 이를 명시적으로 처리하는 것이 중요합니다. `NonNullable<T>`는 다음과 같은 형태로 정의됩니다: ```typescript type NonNullable<T> = T extends null | undefined ? never : T; ``` 위의 정의를 보면, `NonNullable`는 제네릭 타입 `T`를 받아서, `T`가 `null` 또는 `undefined`인 경우 `never` 타입을 반환하고, 그렇지 않은 경우에는 원래의 타입 `T`를 반환합니다. 결과적으로, `NonNullable`를 사용하면 특정 타입에서 `null`과 `undefined`를 제거한 새로운 타입을 생성할 수 있습니다. 사용 예시 다음은 `NonNullable` 타입을 사용하는 몇 가지 예시입니다. 1. 기본 사용법 ```typescript type NullableString = string | null | undefined; type NonNullableString = NonNullable<NullableString>; // string ``` 위의 예시에서 `NullableString`은 `string`, `null`, `undefined`를 포함하는 타입입니다. `NonNullable<NullableString>`을 사용하면 `null`과 `undefined`가 제거된 `string` 타입만 남게 됩니다. 2. 함수 매개변수에서의 사용 ```typescript function processValue(value: NonNullable<string | null | undefined>) { // value는 이제 null이나 undefined가 아닙니다. console.log(value.to<a href='https://sangseek.com/sangseeks/UpperCase/ko'>UpperCase</a>()); } ``` 위의 `processValue` 함수는 `NonNullable`을 사용하여 매개변수 `value`가 `null`이나 `undefined`가 아닌 `string`임을 보장합니다. 따라서 함수 내부에서 `value`를 안전하게 사용할 수 있습니다. 3. <a href='https://sangseek.com/sangseeks/객체 타입/ko'>객체 타입</a>에서의 사용 ```typescript interface User { id: number; name: string | null; email?: string | null; } type NonNullableUser = { [K in keyof User]: NonNullable<User[K]>; }; // NonNullableUser는 { id: number; name: string; email: string; } ``` 위의 예시에서는 `User` 인터페이스를 정의하고, `NonNullable`을 사용하여 모든 프로퍼티에서 `null`과 `undefined`를 제거한 `NonNullableUser` 타입을 생성했습니다. 이로 인해 `NonNullableUser`는 모든 프로퍼티가 필수이며, `null`이나 `undefined`가 없는 타입이 됩니다. 장점 1. 타입 안전성 : `NonNullable`을 사용하면 코드에서 `null`이나 `undefined`로 인한 오류를 사전에 방지할 수 있습니다. 이는 특히 API 응답이나 외부 데이터와 상호작용할 때 유용합니다. 2. 가독성 향상 : 코드에서 `null`과 `undefined`를 명시적으로 처리하지 않아도 되므로, 코드의 가독성이 향상됩니다. 개발자는 타입을 통해 어떤 값이 반드시 존재해야 하는지를 쉽게 이해할 수 있습니다. 3. 유지보수 용이성 : 타입이 명확하게 정의되어 있으면, 코드의 유지보수가 쉬워집니다. 다른 개발자가 코드를 이해하고 수정하는 데 드는 시간이 줄어듭니다. 결론 TypeScript의 `NonNullable` 타입은 타입 안전성을 높이고, 코드의 가독성을 향상시키는 유용한 도구입니다. `null`과 `undefined`를 처리할 때 발생할 수 있는 오류를 방지하고, 개발자가 보다 명확한 타입 정의를 통해 코드의 의도를 분명히 할 수 있도록 돕습니다. 따라서 TypeScript를 사용하는 개발자라면 `NonNullable`을 적극적으로 활용하는 것이 좋습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기