Подтвердить что ты не робот

Импорт JS файла в Typescript

Я просматриваю переход на Typescript и в настоящее время смотрю на это медленно, если возможно, файл по файлу.

Теперь система, которую я сейчас использую, построена с помощью Webpack, и я хочу продолжить ее для создания моего общего пакета.

У меня есть файл .d.ts для определения, но мне нужен мой файл для продолжения импорта, который в настоящее время вызывает ошибку.

/// <reference path="../../../../vendor/src/foo.d.ts" />
import foo = require('../../../../vendor/src/foo.js');

foo('something');

В настоящее время я бросаю ошибки, которые я также пробовал без ссылочного пути, и это, похоже, вызывает ошибку, что это не модуль. В настоящее время единственный способ, которым я не могу получить ошибок, - это не импорт и просто добавление ссылки, но это будет означать, что веб-пакет не будет знать местоположение моего файла.

Любые идеи, которые я искал, довольно много, но я не могу иметь смысла импортировать JS файлы в Typescript.

4b9b3361

Ответ 1

Любые идеи, которые я искал, довольно много, но я не могу иметь смысла импортировать JS файлы в Typescript.

Для веб-пакета все, что вам нужно, это declare функция require и сделайте то, что вы уже использовали для:

var foo = require('../../../../vendor/src/foo');

Определение типа функции require присутствует здесь: https://github.com/TypeStrong/ts-loader#loading-other-resources-and-code-splitting

Если вы хотите более эффективно использовать foo... рекомендуется портировать его на .ts, а не пытаться собрать, а затем сохранить файл .d.ts для него.

Ответ 2

Как насчет просто переименовать foo.js в foo.ts (для этого может потребоваться несколько дополнительных шагов, но часто это нормально работает), а затем перепишите фрагмент:

 /// <reference path="../../../../vendor/src/foo.d.ts" />

 foo('something');