Я разрабатываю библиотеку 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):
- Использование
:any
с каждым объявлением (Снимите все преимущества использования машинописи ) - Не используйте типы и установите
"noImplicitAny"
на false
(то же, что 1) - Используйте
typeof import('three')['Scene'...]
с каждым объявлением (слишком многословно)
Есть ли лучший способ импортировать только определения типов, спасибо.