interface.d.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import type { CSSProperties } from 'vue';
  2. import type { Key, VueNode } from '../_util/type';
  3. export type NoticeType = 'info' | 'success' | 'error' | 'warning' | 'loading';
  4. export interface ConfigOptions {
  5. top?: number | string;
  6. duration?: number;
  7. prefixCls?: string;
  8. getContainer?: () => HTMLElement;
  9. transitionName?: string;
  10. maxCount?: number;
  11. rtl?: boolean;
  12. }
  13. export interface ArgsProps {
  14. content: string | (() => VueNode) | VueNode;
  15. duration?: number;
  16. type?: NoticeType;
  17. onClose?: () => void;
  18. icon?: (() => VueNode) | VueNode;
  19. key?: string | number;
  20. style?: CSSProperties;
  21. class?: string;
  22. onClick?: (e: Event) => void;
  23. }
  24. export type JointContent = VueNode | ArgsProps;
  25. export interface MessageType extends PromiseLike<boolean> {
  26. (): void;
  27. }
  28. export type TypeOpen = (content: JointContent, duration?: number | VoidFunction, // Also can use onClose directly
  29. onClose?: VoidFunction) => MessageType;
  30. export interface MessageInstance {
  31. info: TypeOpen;
  32. success: TypeOpen;
  33. error: TypeOpen;
  34. warning: TypeOpen;
  35. loading: TypeOpen;
  36. open(args: ArgsProps): MessageType;
  37. destroy(key?: Key): void;
  38. }