Аннотация
Я пытаюсь импортировать файл .js из внешнего местоположения (т.е. node_modules). Я пытаюсь сделать это с помощью шаблона модуля commonjs, однако import не захочет работать с файлами типа .js, пока я не добавлю файл ".d.ts" рядом с файлом ".js" в той же папке.
Но проблема в том, что я не хочу влиять на node_modules с моими файлами .d.ts. Я хочу, чтобы он находился в другой папке, отдельно от node_modules, но как только я это сделаю, компилятор typescript выдает ошибку:
Пример
У меня есть следующая структура папок:
|- DTS
| |- y.d.ts
|- main.ts
|- y.js
y.js имеет следующий контент
module.export = function (x) {
console.log(x);
};
y.d.ts имеет следующий контент
export interface Y {
(x): any;
}
declare let y: Y;
export default y;
main.ts имеет следующий контент
import * as y from './y'
Теперь, когда я пытаюсь скомпилировать main.ts с помощью
tsc -m commonjs -t ES2015 main.ts
Я получаю сообщение об ошибке:
x.ts(1,20): error TS2307: Cannot find module './y'.
Вопрос
Как импортировать файлы ".js" и быть в состоянии определить его ".d.ts" объявления, имея оба файла, расположенные в разных местах.
Изменить
Вот ссылка на пример проекта. Обязательно используйте компилятор typescript версии 2.0. И команду tsc
выше, чтобы увидеть ошибку.