تايب سكريبت: استيراد التصدير الافتراضي من الوحدة


لدي ملف من نوع التعريف التالي:

// index.d.ts
declare module 'Transformer' {
  class EditableElement {
      constructor(target: SVGPoint);
  }
  export = EditableElement;
}

وأريد استيراد EditableElement. ولكن عندما أكتب السطر التالي:

import {EditableElement} from 'Transformer';

أتلقى الخطأ التالي:

وحدة "Transformer" تحل إلى كيان غير وحدة ولا يمكن استيرادها باستخدام هذا البنية.

كيف يمكنني استيراد الفئة EditableElement؟ في الواقع، أنا فقط أريد استخدام تلك الفئة. لا أريد أن يكون لتوجيه import تأثير جانبي في كودي. أنا فقط أريد استخدامها :‘(

الإجابة رقم 1

هذا يندرج ضمن التفاعل بين ES6 و CommonJS.

توصيتي هي عدم الاعتماد على التفاعل بين الأنظمة واستخدام الصياغة القديمة بدلاً من ذلك:

const EditableElement = require('Transformer')

إذا كنت بحاجة إلى استهداف es6/es2015، فيمكنك القيام بما يلي:

import * as EditableElement from 'Transformer'

// with `allowSyntheticDefaultImports`
import EditableElement from 'Transformer'

تحديث: مع إصدار [email ، يمكنك الآن استخدام import EditableElement from 'Transformer' مباشرة.

قم بتشغيل esModuleInterop في tsconfig.json الخاص بك