Я использую Webpack и @babel/typescript
для компиляции смешанного проекта TypeScript и JavaScript.
Я использую --noImplicitAny
, чтобы поощрять использование возможности печатать.
Я не использую --allowJs
, потому что мой проект настолько велик, что он забивает компилятор TypeScript и разрушает подсветку Visual Studio / Intellisense.
Для нетипизированных модулей npm, если у меня нет времени на добавление типографий, я создаю файл определения, чтобы явно установить его тип на any
. Например
example.ts
import * as elemDataset from 'elem-dataset';
эль-dataset.ts
declare module 'elem-dataset';
Это удовлетворяет компилятору. Но для внутренних модулей я еще не преобразовал в TS ...
import * as example from './example2'; // Where example2 is example2.ts
Я получаю эту ошибку:
Не удалось найти файл объявления типа для модуля './example2'. C: /blah/blah/blah/example2.js неявно имеет тип 'any'.
Я пытался добавить объявление типа, как в этот ответ .
example2.d.ts
declare var example2: any;
declare module "example2" {
export = example2;
}
Но тогда я получаю эту ошибку:
Файл C: /blah/blah/blah/example2.d.ts не является модулем.
Я также пытался declare module '*';
за этот ответ , но я получил ту же ошибку, что и выше.
Как я могу явно установить тип импорта внутреннего файла JS на любой?