typescript - global olarak yeniden kullanılabilir tipleri turborepo'da paketlerin tipine nasıl taşırız?


apps içindeki herhangi bir uygulama için, benim buna benzer bazı tipleri içeren bir global.d.ts dosyasına ihtiyacım var

interface Window{
    analytics: any;
}

Tekrar kullanılabilir olmalı ve packages/types'e taşınmalı ve uygulamalarda her yerde kullanılabilir olmalıdır.

Window türünü packages/types dizinine taşıdım ama uygulamalarda ithal ederken global türler çalışmıyordu.

Cevap #1

Bunu düzgün bir şekilde ayarlamak birkaç adım gerektirir:

  1. Monoreponuzdaki packages klasörü içinde bir shared-types paketi oluşturun
  2. Ortak tiplerin bulunduğu shared-types paketindeki package.json dosyasında tiplerin nerede bulunduğunu tanımlayın:
{
    "name": "shared-types",
    "version": "1.0.0",
    "main": "./index.js",
    "types": "./index.ts",
    "dependencies": {
        "typescript": "latest"
      }
}
  1. İhtiyacı olan uygulamalara shared-types bağımlılığını ekleyin
 "dependencies": {
    ...
    "shared-types": "*"
  },
  1. İhtiyacınız olan türleri içe aktarın
import { MyType } from "shared-types";

Daha fazla detay için Turborepo belgelerindeki Paylaşım Kodu ve Dahili Paketler bölümlerine bakın.

İlgili makaleler