From fdc98dadb35d2d92ba074a9440476b4d054cf3a2 Mon Sep 17 00:00:00 2001 From: icarus Date: Wed, 6 Aug 2025 19:10:45 +0800 Subject: [PATCH] =?UTF-8?q?refactor(types):=20=E4=BC=98=E5=8C=96=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=AE=88=E5=8D=AB=E4=BD=BF=E7=94=A8=20Object.hasOwn?= =?UTF-8?q?=20=E6=9B=BF=E4=BB=A3=20Object.values?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 简化类型守卫实现,使用 Object.hasOwn 直接检查属性存在性,提升代码简洁性 --- src/renderer/src/types/index.ts | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index 37b6540f3f..a4d9901e30 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -248,10 +248,8 @@ export const SystemProviderIds = { export type SystemProviderId = (typeof SystemProviderIds)[keyof typeof SystemProviderIds] -const systemProviderIdValues = Object.values(SystemProviderIds) - export const isSystemProviderId = (id: string): id is SystemProviderId => { - return systemProviderIdValues.some((sid) => sid === id) + return Object.hasOwn(SystemProviderIds, id) } export type SystemProvider = Provider & { @@ -913,10 +911,8 @@ export const OpenAIServiceTiers = { export type OpenAIServiceTier = (typeof OpenAIServiceTiers)[keyof typeof OpenAIServiceTiers] -const openAIServiceTiersValues = Object.values(OpenAIServiceTiers) // for type guard perf - export function isOpenAIServiceTier(tier: string): tier is OpenAIServiceTier { - return openAIServiceTiersValues.some((value) => value === tier) + return Object.hasOwn(OpenAIServiceTiers, tier) } export const GroqServiceTiers = { @@ -929,12 +925,8 @@ export const GroqServiceTiers = { // 从 GroqServiceTiers 对象中提取类型 export type GroqServiceTier = (typeof GroqServiceTiers)[keyof typeof GroqServiceTiers] -// 缓存 Groq 服务等级值数组以提升类型守卫性能 -const groqServiceTiersValues = Object.values(GroqServiceTiers) - -// Groq 服务等级类型守卫 export function isGroqServiceTier(tier: string): tier is GroqServiceTier { - return groqServiceTiersValues.some((value) => value === tier) + return Object.hasOwn(GroqServiceTiers, tier) } export type ServiceTier = OpenAIServiceTier | GroqServiceTier