From e38525638d2c6e59b41dec6701f05c55fee10df6 Mon Sep 17 00:00:00 2001 From: pany <939630029@qq.com> Date: Tue, 12 Nov 2024 20:10:09 +0800 Subject: [PATCH] refactor: no keywords "any" and "unknown" --- src/config/white-list.ts | 6 +++--- src/hooks/useFullscreenLoading.ts | 2 +- src/router/permission.ts | 5 ++--- src/utils/validate.ts | 4 ++-- src/views/hook-demo/use-fullscreen-loading.vue | 4 ++-- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/config/white-list.ts b/src/config/white-list.ts index df47b23..4cb0548 100644 --- a/src/config/white-list.ts +++ b/src/config/white-list.ts @@ -1,15 +1,15 @@ -import { type RouteLocationNormalized } from "vue-router" +import { type RouteLocationNormalized, type RouteRecordNameGeneric } from "vue-router" /** 免登录白名单(匹配路由 path) */ const whiteListByPath: string[] = ["/login"] /** 免登录白名单(匹配路由 name) */ -const whiteListByName: string[] = [] +const whiteListByName: RouteRecordNameGeneric[] = [] /** 判断是否在白名单 */ const isWhiteList = (to: RouteLocationNormalized) => { // path 和 name 任意一个匹配上即可 - return whiteListByPath.indexOf(to.path) !== -1 || whiteListByName.indexOf(to.name as any) !== -1 + return whiteListByPath.indexOf(to.path) !== -1 || whiteListByName.indexOf(to.name) !== -1 } export default isWhiteList diff --git a/src/hooks/useFullscreenLoading.ts b/src/hooks/useFullscreenLoading.ts index 8e10a29..9834af7 100644 --- a/src/hooks/useFullscreenLoading.ts +++ b/src/hooks/useFullscreenLoading.ts @@ -10,7 +10,7 @@ interface LoadingInstance { } interface UseFullscreenLoading { - ReturnType>( + ) => ReturnType>( fn: T, options?: LoadingOptions ): (...args: Parameters) => Promise> diff --git a/src/router/permission.ts b/src/router/permission.ts index c5bcee5..cc8ba9c 100644 --- a/src/router/permission.ts +++ b/src/router/permission.ts @@ -44,13 +44,12 @@ router.beforeEach(async (to, _from, next) => { routeSettings.dynamic ? permissionStore.setRoutes(roles) : permissionStore.setAllRoutes() // 将 "有访问权限的动态路由" 添加到 Router 中 permissionStore.addRoutes.forEach((route) => router.addRoute(route)) - // 确保添加路由已完成 // 设置 replace: true, 因此导航将不会留下历史记录 next({ ...to, replace: true }) - } catch (err: any) { + } catch (error) { // 过程中发生任何错误,都直接重置 Token,并重定向到登录页面 userStore.resetToken() - ElMessage.error(err.message || "路由守卫过程发生错误") + ElMessage.error((error as Error).message || "路由守卫过程发生错误") next("/login") } }) diff --git a/src/utils/validate.ts b/src/utils/validate.ts index 2092594..c3b6b32 100644 --- a/src/utils/validate.ts +++ b/src/utils/validate.ts @@ -1,10 +1,10 @@ /** 判断是否为数组 */ -export const isArray = (arg: unknown) => { +export const isArray = (arg: T) => { return Array.isArray ? Array.isArray(arg) : Object.prototype.toString.call(arg) === "[object Array]" } /** 判断是否为字符串 */ -export const isString = (str: unknown) => { +export const isString = (str: T) => { return typeof str === "string" || str instanceof String } diff --git a/src/views/hook-demo/use-fullscreen-loading.vue b/src/views/hook-demo/use-fullscreen-loading.vue index c711ef6..df79e1f 100644 --- a/src/views/hook-demo/use-fullscreen-loading.vue +++ b/src/views/hook-demo/use-fullscreen-loading.vue @@ -32,8 +32,8 @@ const querySuccess = async () => { const queryError = async () => { try { await useFullscreenLoading(getErrorApi, options)() - } catch (err: any) { - ElMessage.error(err.message) + } catch (error) { + ElMessage.error((error as Error).message) } }