= keyof T> =
TKey extends keyof T ? { [P in TKey]-?:T[TKey] } & Partial<Record<Exclude<keyof T, TKey>, never>>: never
const mo = { foo: 3, bar: 'ere' };
type MyObject<O> = EitherField<{ [key in keyof O]: boolean }>;
const x: MyObject<typeof mo> = {
foo: true, // Надо позволить только один из ключей
bar: true // Вот тут ошибку надо
};
Офигеть! 😮 Спасибо!
Обсуждают сегодня