export interface MessageItem { key?: string; content: React.ReactNode; duration?: number; } type MessageFn = (Message: MessageItem) => void; const addMessageFn: MessageFn[] = []; export const add = (Message: MessageItem) => { addMessageFn.forEach((item) => { item(Message); }); } export const addFn = (fn: MessageFn) => { return addMessageFn.push(fn) - 1; } export const removeFn = (fn: MessageFn) => { const index = addMessageFn.indexOf(fn); if (index > -1) { addMessageFn.splice(index, 1); } }