typescript - Bagaimana untuk memindahkan jenis global yang boleh digunakan semula ke jenis pakej dalam turborepo?


Untuk mana-mana aplikasi dalam apps, saya memerlukan global.d.ts yang mempunyai beberapa jenis seperti ini

interface Window{
    analytics: any;
}

Ia perlu boleh digunakan semula dan dipindahkan ke packages/types serta boleh digunakan di mana-mana dalam aplikasi.

Saya memindahkan jenis Window ke packages/types tetapi jenis global tidak berfungsi semasa mengimport dalam aplikasi.

Jawapan #1

Menetapkan ini dengan betul memerlukan beberapa langkah:

  1. Buat satu pakej shared-types di dalam folder packages dalam monorepo anda
  2. Dalam package.json bagi shared-types, nyatakan di mana jenis-jenis itu berada:
{
    "name": "shared-types",
    "version": "1.0.0",
    "main": "./index.js",
    "types": "./index.ts",
    "dependencies": {
        "typescript": "latest"
      }
}
  1. Tambah kebergantungan shared-types kepada aplikasi yang memerlukannya
 "dependencies": {
    ...
    "shared-types": "*"
  },
  1. Import jenis yang anda perlukan
import { MyType } from "shared-types";

Lihat bahagian Kod Perkongsian dan Pakej Dalaman dalam dokumentasi Turborepo untuk maklumat lebih lanjut.