Только типы импорта Typescript («Три», «Вавилон») - PullRequest
0 голосов
/ 10 апреля 2020

Я разрабатываю библиотеку WebGL, которая позволяет пользователю выбирать свою трехмерную библиотеку: «Три. js» или «Вавилон», пользователь импортирует ее и передает в качестве параметра.

import MyWebGLLibrary from 'MyWebGLLibrary';
import * as THREE from 'three';

const myWebGLLibrary = new MyWebGLLibrary({ engine: THREE });

Так как эти библиотеки передаются как параметр engine, я не импортирую тему заново в свой файл машинописи, мне нужны только там типы определений.

Я пробовал import type * as THREE from "three" и type THREE = import('three'), без success, вызывает следующую ошибку Module 'three' does not refer to a type, but is used as a type here. Did you mean 'typeof import('three')'

У меня остались эти опции (afaik):

  1. Использование :any с каждым объявлением (Снимите все преимущества использования машинописи )
  2. Не используйте типы и установите "noImplicitAny" на false (то же, что 1)
  3. Используйте typeof import('three')['Scene'...] с каждым объявлением (слишком многословно)

Есть ли лучший способ импортировать только определения типов, спасибо.

...