はじめに TypeScriptでオブジェクトの一部(または全部)のプロパティをnullableで型定義し、そのオブジェクトのnull許容させない型を作るときにどうすれば良いのかメモします。 ↓のような定義 type User = { id: number, name: string | null, age: number | null, } type User = { id: number, name: string | null, age: number | null, } type RequiredNotNull<T> = { [P in keyof T]: NonNullable<T[P]>; }; type NonNullableUser = RequiredNotNull<User> // ↓のような定義になります // NonNullableUser = { // id: nu