interfață - Cum să re-exporți tipurile ca globale în TypeScript


Aș dori ca o interfață (definită într-un fișier separat) să fie accesibilă global, cum pot face acest lucru?

Iată fișierul meu globals.d.ts

import { Theme, Style } from './style/themes/theme.types'

declare global {
  Theme
  Style
}

Acest lucru îmi dă o eroare

Statements are not allowed in ambient contexts.ts(1036)
'Theme' only refers to a type, but is being used as a value here.ts(2693)

Răspuns #1

Acesta ar putea fi un truc, deoarece generează o eroare dacă este plasat într-un fișier .ts, dar pare să funcționeze atunci când este plasat într-un fișier .d.ts.

Ideea este să imporți tipul cu un nume și să îl exporți cu altul.

src/globals.d.ts:

import type { DeepPick as _DeepPick } from "ts-deep-pick";
declare global {
  export { _DeepPick as DeepPick };
}