我想在全球范围内使用showError,showNotice,showSuccess之类的功能。
我遵循了一些教程,最终做到了:
创建具有内容的global.d.ts文件:
declare global {
const showSuccess: Toast;
const showWarning: Toast;
const showNotice: Toast;
const question: QuestionFunction;
}
在Notification.ts中添加了以下代码
const notificationPlugin: Plugin = function ({}, inject: Function) {
inject('showSuccess', showSuccess);
inject('showError', showError);
inject('showWarning', showWarning);
inject('showInfo', showInfo);
inject('confirm', confirm);
};
export default notificationPlugin;
const _global = (global | window) as any;
_global.showSuccess = showSuccess;
但是,它对我不起作用。当我将鼠标悬停在函数上时,Webstorm确实显示了函数定义。但是,Nuxt抛出错误,表明showSuccess未定义。
更新:现在,通过在Notification.ts文件中进行以下更改来使它起作用
declare global {
function showSuccess<T>(message: string | toastOption, options?: messageOption): void;
function showError<T>(message: string | toastOption, options?: messageOption): void;
function showInfo<T>(message: string | toastOption, options?: messageOption): void;
function showWarning<T>(message: string | toastOption, options?: messageOption): void;
function confirm<T>(message: string, questionOption?: Partial<QuestionOption>): Promise<boolean>;
}
现在,我可以构建应用程序而不会出现任何错误。但是,webstorm仍然显示未定义的函数错误。