In the follow example
type Message = string
type CommandWithArgsProps<Args> = {
args: true
argsRequired: boolean
resolveFromArgs(args: string[], message: Message): Promise<Args>
}
export type Command<Args extends unknown = never> = {
name?: string
description: string
execute(message: Message, args: Args): Promise<unknown>
} & (Args extends never ? Record<string, never> : CommandWithArgsProps<Args>)
I would like
const x: Command = {
description: "",
async execute() {
return ""
},
}
To be valid, however this errors with Type '{}' is not assignable to type 'never'
. When I add the generic parameter I would like to extend the Command type with the CommandWithArgsProps type