Использование THREE из forge-viewer / node_modules / @ types / three вызывает ошибку компилятора - PullRequest
0 голосов
/ 19 июня 2020

Мне нужно использовать метод Viewer.setThemingColor(), для которого требуется параметр типа THREE.Vector4.

Я работаю с Angular 9, и я установил @types/forge-viewer, который также включает определение для трех в forge-viewer/node_modules/@types/three.

Visual Studio Code подбирает определение THREE.Vector4 и вставляет import * as THREE from 'forge-viewer/node_modules/@types/three', но команда ng build выдает ошибку:

Can't resolve 'forge-viewer/node_modules/@types/three'.

Я попытался добавить три к обоим tsconfig.app.json (типы) и tsconfig.json (typeRoots ) во многих вариантах, но это не помогает.

Дополнительная установка @types/three и импорт из «трех» исправят ошибку компилятора, но при этом будут создаваться повторяющиеся определения в разных местах, и Visual Studio Code будет автоматически видеть только местоположение из forge-viewer forge-viewer/node_modules/@types/three а не three.

В чем проблема ее и как ее исправить?

1 Ответ

0 голосов
/ 23 июня 2020

Я нашел способ избежать ошибки компилятора, когда объекты THREE упоминаются в коде без установки @types/three. В файле TS, где есть ссылка на что-то из формы THREE, например THREE.Vector4, вместо импорта THREE из модуля вставьте «поддельное» объявление

declare var THREE: any;

Положительные результаты:

  1. Нет ошибки компиляции;
  2. Нет второй копии из трех. js загружено из веб-пакета

Отрицательный результат - потеря Intellisense TypeScript в VS Code, но может можно смягчить путем временной установки @types/three, разработки и тестирования кода, а затем удаления @types/three.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...