TypeScript - استفاده از تعریف نوع بسته مشابه


من در برنامه تایپاسکریپت خود از fabric-with-gestures استفاده میکنم و همه چیز خوب است. با این حال، کتابخانه اصلی fabric انواع تعریفشده دارد و میتوانم آنها را با npm install --dev @types/fabric نصب کنم، اما تایپاسکریپت آنها را برای پکیج fabric-with-gestures شناسایی نمیکند.

چطور میتوانم از نوعهای fabric همراه با fabric-with-gestures استفاده کنم در حالی که هیچ ماژول @types/fabric-with-gestures وجود ندارد و من فرض میکنم نوعها عمدتاً مشابه هستند؟ آیا این اصلاً ممکن است؟

پاسخ شماره ۱

برای تمام بستهها به طور کلی، میتوانید یک نام مستعار نوع ایجاد کنید با افزودن گزینههای baseUrl و paths به tsconfig.json خود (من از fabric استفاده نمیکنم، اما یک تنظیم سریع بهتازگی به طور موفقیتآمیز کامپایل شد).

tsconfig.json:

{
  "compilerOptions": {
    ...
    // absolute name imports are resolved relative to baseUrl
    "baseUrl": ".", 
    // alias "fabric-with-gestures" is mapped to path of fabric @types
    "paths": { 
      "fabric-with-gestures": ["node_modules/@types/fabric"]
    }
  }
}

طرز استفاده :

// Use fabric-with-gestures. Types are internally mapped to @types/fabric
import { fabric } from "fabric-with-gestures";