Avatar
そうですね。たしかMapped Typeでも扱いが特殊だったはず
1:39 AM
最近難しいと思ったのは interface ReturnNotUndefined { (...args: any): Promise<NonNullable<unknown>> | NonNullable<unknown> } const a = (() => 42) satisfies ReturnNotUndefined; const b = (() => null) satisfies ReturnNotUndefined; // エラーになる、嬉しい const c = (async () => null) satisfies ReturnNotUndefined; // エラーにならない、嬉しくない こういうnon nullなTを返すsyncまたはasync関数を定義したいときに、うまく区別できなかったりとか
1:40 AM
(これはPromise<null>NonNullable<unknown>なせい)