Как импортировать js библиотеку без файла определения в файле машинописного текста

Я хочу переключиться от JavaScript до TypeScript для помощи с управлением кодом, поскольку наш проект становится больше. Мы используем, однако, много библиотек как AMD Модули, которые мы не хотим преобразовывать в TypeScript.

Мы все еще хотим импортировать их в файлы TypeScript, но мы также не хотим генерировать файлы определения. Как мы можем достигнуть этого?

например, новый файл Машинописного текста:

/// <reference path="../../../../definetelyTyped/jquery.d.ts" />
/// <reference path="../../../../definetelyTyped/require.d.ts" />
import $ = require('jquery');
import alert = require('lib/errorInfoHandler');

Здесь, lib/errorInfoHandler модуль AMD, включенный в огромную библиотеку JavaScript, которой мы не хотим касаться.

Используя вышеупомянутый код производит следующие ошибки:

Unable to resolve external module ''lib/errorInfoHandler'' 
Module cannot be aliased to a non-module type.

Это должно на самом деле произвести следующий код:

define(["require", "exports", "jquery", "lib/errorInfoHandler"], function(require, exports, $, alert) {
...

}

Существует ли способ импортировать библиотеку JavaScript в TypeScript как AMD Модуль и использовать его в файле TypeScript, не делая файл определения?

60
задан 22 May 2017 в 23:02

1 ответ

Обычно, если Вы просто хотите нуждаться временное более быстрое решение , которое могло бы быть сделано путем определения нового index.d.ts в корне папки проекта, затем сделать имя модуля как описанный внутренним package.json файл

, например

// somefile.ts
import Foo from '@awesome/my-module'

// index.d.ts on @awesome/my-module
declare module '@awesome/my-module' {
  const bind: any;
  export default bind;
}
0
ответ дан 1 November 2019 в 10:58

Другие вопросы по тегам:

Похожие вопросы: