const app = createApp({})
-app.directive<HTMLElement, string>('custom', {
- mounted(el, binding) {
- expectType<HTMLElement>(el)
- expectType<string>(binding.value)
+app.directive<HTMLElement, string, 'prevent' | 'stop', 'arg1' | 'arg2'>(
+ 'custom',
+ {
+ mounted(el, binding) {
+ expectType<HTMLElement>(el)
+ expectType<string>(binding.value)
+ expectType<{ prevent: boolean; stop: boolean }>(binding.modifiers)
+ expectType<'arg1' | 'arg2'>(binding.arg!)
- // @ts-expect-error not any
- expectType<number>(binding.value)
+ // @ts-expect-error not any
+ expectType<number>(binding.value)
+ },
},
-})
+)
name: string,
component: T,
): this
- directive<T = any, V = any>(name: string): Directive<T, V> | undefined
- directive<T = any, V = any>(name: string, directive: Directive<T, V>): this
+ directive<
+ HostElement = any,
+ Value = any,
+ Modifiers extends string = string,
+ Arg extends string = string,
+ >(
+ name: string,
+ ): Directive<HostElement, Value, Modifiers, Arg> | undefined
+ directive<
+ HostElement = any,
+ Value = any,
+ Modifiers extends string = string,
+ Arg extends string = string,
+ >(
+ name: string,
+ directive: Directive<HostElement, Value, Modifiers, Arg>,
+ ): this
mount(
rootContainer: HostElement | string,
/**