Импорт модуля JS в файл TS - PullRequest
0 голосов
/ 27 февраля 2020

В коде Visual Studio, когда есть два .js файла модуля A.js and B.js, импорт модуля A внутри модуля B позволяет нам использовать автозаполнение в импортированном модуле. При импорте модуля A в C.ts это автозаполнение недоступно, и, конечно же, появляется сообщение Could not find a declaration file for module <PATH_TO_A_MODULE>. Я видел ответы, которые предлагают создать файлы объявлений для модуля A, но я хочу избежать этого, потому что VS Code уже «знает» объявления, так как он работает при импорте модуля JS в другой модуль JS. Среда nodejs.

Пример:

// A.js
export const some_variable = 1

// B.js
import * as A from 'A.js'
A.some_variable --> autosugestion and complete works

// C.ts
import * as A from 'A.js' --> this shows warning and autocomplete not available on A.
A.some_variable --> does not throw error but autocomplete is not working

Есть ли способ разрешить импорт модулей JS в файлы TS без файлов объявлений, чтобы работали автозаполнение и ввод?

РЕДАКТИРОВАТЬ: (tsconfig. json)

{
  "compilerOptions": {
    "baseUrl": ".",
    "esModuleInterop": true,
    "lib": ["es2015"],
    "module": "commonjs",
    "noImplicitAny": false,
    "outDir": ".build",
    "paths": {
      "*": ["node_modules/*"]
    },
    "preserveConstEnums": true,
    "resolveJsonModule": true,
    "rootDir": "",
    "sourceMap": true,
    "strictNullChecks": true,
    "target": "es6",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "noImplicitUseStrict": true,
    "checkJs": true,
    "allowSyntheticDefaultImports": true,
    "declaration": true,
    "allowJs": true
  }
}

1 Ответ

0 голосов
/ 27 февраля 2020

Вы не можете сделать это, вам нужно добавить набрав для этого для импорта модуля js в TypeScript, пожалуйста, прочитайте это: https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html

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