typescript - Hvordan flytter man globale genanvendelige typer til pakke-typer i turborepo?


For enhver app i apps har jeg brug for en global.d.ts, der har nogle typer som dette

interface Window{
    analytics: any;
}

Det skal være genanvendeligt og flyttet til packages/types og kan bruges overalt i apps.

Jeg flyttede Window-typen til packages/types, men globale typer virkede ikke, når de blev importeret i apps.

Svar #1

At sætte dette korrekt op kræver nogle få trin:

  1. Opret en shared-types pakke inde i packages mappen i dit monorepo
  2. I package.json for shared-types, definer hvor typerne er placeret:
{
    "name": "shared-types",
    "version": "1.0.0",
    "main": "./index.js",
    "types": "./index.ts",
    "dependencies": {
        "typescript": "latest"
      }
}
  1. Tilføj shared-types-afhængigheden til de apps, der har brug for den
 "dependencies": {
    ...
    "shared-types": "*"
  },
  1. Importér de typer, du har brug for
import { MyType } from "shared-types";

Se disse afsnit om Deling af kode og Interne pakker i Turborepo-dokumentationen for flere detaljer.

Relaterede artikler