index.d.ts 1.0 KB

12345678910111213141516171819202122232425
  1. export type ComponentProps<T> = T extends new (...args: any) => {
  2. $props: infer P;
  3. } ? NonNullable<P> : T extends (props: infer P, ...args: any) => any ? P : {};
  4. export type ComponentSlots<T> = T extends new (...args: any) => {
  5. $slots: infer S;
  6. } ? NonNullable<S> : T extends (props: any, ctx: {
  7. slots: infer S;
  8. attrs: any;
  9. emit: any;
  10. }, ...args: any) => any ? NonNullable<S> : {};
  11. export type ComponentAttrs<T> = T extends new (...args: any) => {
  12. $attrs: infer A;
  13. } ? NonNullable<A> : T extends (props: any, ctx: {
  14. slots: any;
  15. attrs: infer A;
  16. emit: any;
  17. }, ...args: any) => any ? NonNullable<A> : {};
  18. export type ComponentEmit<T> = T extends new (...args: any) => {
  19. $emit: infer E;
  20. } ? NonNullable<E> : T extends (props: any, ctx: {
  21. slots: any;
  22. attrs: any;
  23. emit: infer E;
  24. }, ...args: any) => any ? NonNullable<E> : {};
  25. export type ComponentExposed<T> = T extends new (...args: any) => infer E ? E : T extends (props: any, ctx: any, expose: (exposed: infer E) => any, ...args: any) => any ? NonNullable<E> : {};