Actualmente estoy trabajando en la creación de un nuevo método que quiere hacer una exención de un valor de enumeración específico.
import { Overwrite } from 'utility-types'; enum Gender { boy = 'boy', girl = 'girl', } type Human = { gender: Gender, age: number, } type BoyGender = Exclude<Gender, 'girl'>; type HumanBoy = Overwrite< Human, { gender: BoyGender; } >; export function accept(human: HumanBoy): void { console.log(human) } accept({ gender: Gender.boy, // type error here age: 2 }) Cuando vuelvo a usar la enumeración de Gender , aparece un error de tipo que dice que
Types of property 'gender' are incompatible. Type 'Gender' is not assignable to type 'BoyGender'
Actualmente no estoy seguro de por qué sucede esto, ya que BoyGender obtiene su valor de la enumeración Gender con la excepción de niña. ¿Hay alguna manera de pasar este tipo de error en lugar de crear una nueva enumeración con solo un niño?