interface Emits { (event: "update:remoteContractConfirmation", remoteContractConfirmation: IProps['remoteContractConfirmation']): void (event: "update:extendedPeriod3", extendedPeriod3: IProps['extendedPeriod3']): void (event: "update:extendedPeriod6", extendedPeriod6: IProps['extendedPeriod6']): void } let oneOfEmitEvents: event in keyof Emits = "update:extendedPeriod6"
Хорошего решения нет. Приемлемое решение непрактично.
type OverloadToUnion<T extends (...args: any[]) => any, U = unknown, V = never> = T extends (...args: infer P) => infer R ? U extends T ? V : OverloadToUnion< U & T, U & ((...args: P) => R), V | ((...args: P) => R) > : never type Answer = Parameters<OverloadToUnion<Emits>>[0]
Универсально и на любое количество перегрузок?
не совсем универсально но на любое
Обсуждают сегодня