mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
f18c917fc4
TypeScript 7 is the Go-native rewrite of tsc, ~10x faster but only
distributed as @typescript/native-preview daily builds at the time
of writing (npm typescript@latest is still 6.0.3). Add it as a
non-disruptive type-check tool: yarn typecheck → tsgo --noEmit.
Vite still uses esbuild for transpilation, ESLint still uses TS 6
through @typescript-eslint v8, IDEs continue using their bundled TS.
This commit only adds a type-check tool — nothing replaces.
Required tsconfig.json adjustments for TS 7 compatibility (still
valid for TS 6):
- Drop baseUrl: "./src" (removed in TS 7). The codebase has no
bare/non-relative imports that depended on it; all imports are
relative or aliased.
- Drop downlevelIteration: true (removed in TS 7; target es2022
doesn't need it).
- moduleResolution: "node" → "bundler" (TS 7 dropped node10; bundler
is the right mode for Vite anyway).
- paths "@layout/*" entries now use leading "./" (TS 7 disallows
non-relative path mappings). Add "@/*" → "./src/*" to match the
Vite alias used in some components.
Other TS 7 adjustments:
- src/react-app-env.d.ts: add module declarations for *.css/.scss/.sass
side-effect imports (TS 7 with bundler resolution requires them) +
Window.NitroConfig / Window.NitroSecureApiUrl globals which were
used in App.tsx without a declaration.
- src/common/Popover.tsx: explicit `import { JSX } from 'react'`
because TS 7 dropped the implicit global JSX namespace.
Verification:
- yarn eslint still passes (TS 6 / @typescript-eslint v8 happy with
the migrated config).
- yarn typecheck (tsgo) runs and reports only cascading errors
rooted in the missing @nitrots/nitro-renderer sibling repo
(environmental, not introduced here).
https://claude.ai/code/session_01GrR87LAqnAEyKG2ZbmQt5Q
46 lines
792 B
TypeScript
46 lines
792 B
TypeScript
/// <reference types="react-scripts" />
|
|
declare module '*.png' {
|
|
const src: string;
|
|
export default src;
|
|
}
|
|
|
|
declare module '*.gif' {
|
|
const src: string;
|
|
export default src;
|
|
}
|
|
|
|
declare module '*.jpg' {
|
|
const src: string;
|
|
export default src;
|
|
}
|
|
|
|
declare module '*.jpeg' {
|
|
const src: string;
|
|
export default src;
|
|
}
|
|
|
|
declare module '*.svg' {
|
|
const src: string;
|
|
export default src;
|
|
}
|
|
|
|
declare module '*.webp' {
|
|
const src: string;
|
|
export default src;
|
|
}
|
|
|
|
declare module '*.css';
|
|
declare module '*.scss';
|
|
declare module '*.sass';
|
|
|
|
interface Window
|
|
{
|
|
NitroConfig?: Record<string, unknown>;
|
|
NitroSecureApiUrl?: string;
|
|
}
|
|
|
|
interface ImportMeta
|
|
{
|
|
glob: (pattern: string, options?: { eager?: boolean; import?: string }) => Record<string, string>;
|
|
}
|