"매 TS 가 외부 의 untyped JS / runtime global / module 의 type 의 알려주는 declaration". 매 declare keyword 로 매 implementation 없이 매 type shape 만 표현 — 매 .d.ts file 의 핵심. 매 TypeScript 의 gradual typing 의 backbone, 매 DefinitelyTyped (@types/*) 의 1B+ weekly downloads 의 base.
매 핵심
매 Forms
Ambient variable: declare const VERSION: string;
Ambient function: declare function gtag(...args: unknown[]): void;
Ambient class: declare class Foo { x: number; }
Ambient module: declare module "lodash" { ... }
Ambient namespace: declare namespace JSX { interface Element {} }
Global augmentation: declare global { interface Window { myApp: App; } }
매 Use cases
Untyped 3rd-party JS lib 의 type shim.
Build-time globals (Webpack process.env.NODE_ENV, Vite import.meta.env).
Module augmentation (Express Request.user).
Asset imports (*.svg, *.css).
매 응용
매 @types/node, @types/react — DefinitelyTyped 의 ambient declarations.
매 vite-env.d.ts, next-env.d.ts — framework boilerplate.
// express.d.ts
import{User}from"./user";declareglobal{namespaceExpress{interfaceRequest{user?: User;}}}export{};// 매 file 의 module 로 만든 — augmentation 의 trigger