TypeScript에서 {}는 null/undefined를 제외한 모든 값을 뜻한다.
25 Aug 2025 | typescriptTypeScript에서 {}는 조금 애매한 타입인데,
null과 undefined를 제외한 모든 값
을 뜻한다.
let a: {} = 123; // ✅ number 가능
let b: {} = 'hello'; // ✅ string 가능
let c: {} = { x: 1 }; // ✅ object 가능
let d: {} = []; // ✅ array 가능
let e: {} = null; // ❌ 오류
let f: {} = undefined; // ❌ 오류
BFE.dev문제에서 NonNullable<T>
를 직접 구현하는 풀이가 있었는데,
정답은 아래와같았다.
type MyNonNullable<T> = T & {};
유니언 타입에서 & {}
를 교차시키면,
null과 undefined만 걸러지고 나머지는 그대로 유지된다.
type Ex = string | null | undefined;
type Result = Ex & {};
// = (string & {}) | (null & {}) | (undefined & {})
// = string | never | never
// = string
즉 T가 유니언일 때, 각각을 {}와 교차시켜 계산하여 null/undefined를 걸러낸다.
(유니언은 반복문의 효과를 가져옴)