Avatar
これはintersection typeの話ですが、 type AAA = string & { foo: null }; type BBB = Omit<AAA, "foo">; function useString(str: string) {} function useBBB(bbb: BBB) { useString(bbb); // Argument of type 'BBB' is not assignable to parameter of type 'string'. } fooをうまく剥がせなかったりとか。