From d124ebe732a0571e97e6ab0dda4f6ace65f303d2 Mon Sep 17 00:00:00 2001 From: Yunics Highfield <101333147+yunics-highfield@users.noreply.github.com> Date: Thu, 26 Dec 2024 17:09:30 +0900 Subject: [PATCH 1/9] Remove a key definition of ImportMetaEnv --- packages/vite/types/importMeta.d.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/vite/types/importMeta.d.ts b/packages/vite/types/importMeta.d.ts index bd4418379951b3..337013f37546d7 100644 --- a/packages/vite/types/importMeta.d.ts +++ b/packages/vite/types/importMeta.d.ts @@ -3,7 +3,6 @@ // interface ImportMetaEnv { - [key: string]: any BASE_URL: string MODE: string DEV: boolean From 8edd6a42393d695a8d85494752f01ec47054a025 Mon Sep 17 00:00:00 2001 From: Yunics Highfield <101333147+yunics-highfield@users.noreply.github.com> Date: Thu, 26 Dec 2024 20:20:20 +0900 Subject: [PATCH 2/9] Update packages/vite/types/importMeta.d.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 翠 / green --- packages/vite/types/importMeta.d.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/vite/types/importMeta.d.ts b/packages/vite/types/importMeta.d.ts index 337013f37546d7..9c786b59312b71 100644 --- a/packages/vite/types/importMeta.d.ts +++ b/packages/vite/types/importMeta.d.ts @@ -2,7 +2,11 @@ // Thus cannot contain any top-level imports // +// @ts-ignore +type ImportMetaKey = ViteStrictImportMetaEnv extends true ? never : string + interface ImportMetaEnv { + [key: ImportMetaKey]: any BASE_URL: string MODE: string DEV: boolean From d5ac4193792057228fcf9f9279ac04ce85258cad Mon Sep 17 00:00:00 2001 From: Yunics Highfield <101333147+yunics-highfield@users.noreply.github.com> Date: Thu, 26 Dec 2024 22:45:37 +0900 Subject: [PATCH 3/9] Use "@ts-expect-error" instead of "@ts-ignore" --- packages/vite/types/importMeta.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/types/importMeta.d.ts b/packages/vite/types/importMeta.d.ts index 9c786b59312b71..16ca6dc23fba9f 100644 --- a/packages/vite/types/importMeta.d.ts +++ b/packages/vite/types/importMeta.d.ts @@ -2,7 +2,7 @@ // Thus cannot contain any top-level imports // -// @ts-ignore +// @ts-expect-error type ImportMetaKey = ViteStrictImportMetaEnv extends true ? never : string interface ImportMetaEnv { From 38272826abda25016979d1dc462b733bc4be645b Mon Sep 17 00:00:00 2001 From: Yunics Highfield <101333147+yunics-highfield@users.noreply.github.com> Date: Thu, 26 Dec 2024 22:50:29 +0900 Subject: [PATCH 4/9] Remove "@ts-expect-error" --- packages/vite/types/importMeta.d.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/vite/types/importMeta.d.ts b/packages/vite/types/importMeta.d.ts index 16ca6dc23fba9f..0a5d666561bd0f 100644 --- a/packages/vite/types/importMeta.d.ts +++ b/packages/vite/types/importMeta.d.ts @@ -2,7 +2,6 @@ // Thus cannot contain any top-level imports // -// @ts-expect-error type ImportMetaKey = ViteStrictImportMetaEnv extends true ? never : string interface ImportMetaEnv { From 5b8527acf08fa53dfd24e5a78bc96984f3605dc0 Mon Sep 17 00:00:00 2001 From: Yunics Highfield <101333147+yunics-highfield@users.noreply.github.com> Date: Thu, 26 Dec 2024 22:57:11 +0900 Subject: [PATCH 5/9] Update packages/vite/types/importMeta.d.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 翠 / green --- packages/vite/types/importMeta.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/vite/types/importMeta.d.ts b/packages/vite/types/importMeta.d.ts index 0a5d666561bd0f..4381b86822fa44 100644 --- a/packages/vite/types/importMeta.d.ts +++ b/packages/vite/types/importMeta.d.ts @@ -2,6 +2,8 @@ // Thus cannot contain any top-level imports // +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore ViteStrictImportMetaEnv may or may not be declared by users type ImportMetaKey = ViteStrictImportMetaEnv extends true ? never : string interface ImportMetaEnv { From 43a813542165511d6071d49f315b88cb21226b64 Mon Sep 17 00:00:00 2001 From: Yunics Highfield <101333147+yunics-highfield@users.noreply.github.com> Date: Fri, 27 Dec 2024 18:06:18 +0900 Subject: [PATCH 6/9] Modify a document --- docs/guide/env-and-mode.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/guide/env-and-mode.md b/docs/guide/env-and-mode.md index 318bd1ea32da33..43092de2dabf62 100644 --- a/docs/guide/env-and-mode.md +++ b/docs/guide/env-and-mode.md @@ -86,6 +86,9 @@ To achieve this, you can create an `vite-env.d.ts` in `src` directory, then augm ```typescript [vite-env.d.ts] /// +// By adding this line, you can make the type of ImportMetaEnv strict. +declare type ViteStrictImportMetaEnv = true; + interface ImportMetaEnv { readonly VITE_APP_TITLE: string // more env variables... From 2ca9ac1f2f5e936bbf40aff31b5077d275ff1fa6 Mon Sep 17 00:00:00 2001 From: Yunics Highfield <101333147+yunics-highfield@users.noreply.github.com> Date: Fri, 27 Dec 2024 18:20:00 +0900 Subject: [PATCH 7/9] Remove semicolon --- docs/guide/env-and-mode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/env-and-mode.md b/docs/guide/env-and-mode.md index 43092de2dabf62..647ba94325e587 100644 --- a/docs/guide/env-and-mode.md +++ b/docs/guide/env-and-mode.md @@ -87,7 +87,7 @@ To achieve this, you can create an `vite-env.d.ts` in `src` directory, then augm /// // By adding this line, you can make the type of ImportMetaEnv strict. -declare type ViteStrictImportMetaEnv = true; +declare type ViteStrictImportMetaEnv = true interface ImportMetaEnv { readonly VITE_APP_TITLE: string From 456ad409a15c17d14df928a357e3956d5df30f25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 7 Jan 2025 12:13:28 +0900 Subject: [PATCH 8/9] chore: remove `declare` keyword --- docs/guide/env-and-mode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/env-and-mode.md b/docs/guide/env-and-mode.md index 647ba94325e587..5a375746da9ea7 100644 --- a/docs/guide/env-and-mode.md +++ b/docs/guide/env-and-mode.md @@ -87,7 +87,7 @@ To achieve this, you can create an `vite-env.d.ts` in `src` directory, then augm /// // By adding this line, you can make the type of ImportMetaEnv strict. -declare type ViteStrictImportMetaEnv = true +type ViteStrictImportMetaEnv = true interface ImportMetaEnv { readonly VITE_APP_TITLE: string From d1845117cf795df3cebcb1b0c9e10e41536dfdcf Mon Sep 17 00:00:00 2001 From: Yunics Highfield <101333147+yunics-highfield@users.noreply.github.com> Date: Tue, 7 Jan 2025 16:56:23 +0900 Subject: [PATCH 9/9] Update docs/guide/env-and-mode.md Co-authored-by: Bjorn Lu --- docs/guide/env-and-mode.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/guide/env-and-mode.md b/docs/guide/env-and-mode.md index 5a375746da9ea7..e7c7f3bf704087 100644 --- a/docs/guide/env-and-mode.md +++ b/docs/guide/env-and-mode.md @@ -86,7 +86,8 @@ To achieve this, you can create an `vite-env.d.ts` in `src` directory, then augm ```typescript [vite-env.d.ts] /// -// By adding this line, you can make the type of ImportMetaEnv strict. +// By adding this line, you can make the type of ImportMetaEnv strict +// to disallow unknown keys. type ViteStrictImportMetaEnv = true interface ImportMetaEnv {