Как включить автозаполнение IDE для пакетов npm java-скрипта (у которых нет файлов .d.ts) в type-script? - PullRequest
4 голосов
/ 18 апреля 2019

Я создал пустой проект react-native, но с использованием type-script (например, react-native init MyApp --template typescript), затем установил в этот пакет react-navigation-tabs, и проблема, с которой я сталкиваюсь:

TS7016: Could not find a declaration file for module 'react-navigation-tabs'.
'.../node_modules/react-navigation-tabs/src/index.js' implicitly has an 'any' type.
Try `npm install @types/react-navigation-tabs` if it exists
or add a new declaration (.d.ts) file containing `declare module 'react-navigation-tabs';`

Я тоже попробовал npm install --save-dev @types/react-navigation-tabs, и поскольку такого пакета не было, пока я сделал обходной путь, как предложено в другом посте .

Но, возвращаясь к вопросу в названии, это действительно больно, я имею в виду информацию, которую IDE должен обеспечить автозаполнение, есть в файле node_modules/react-navigation-tabs/src/index.js, например:

/* @flow */
/* eslint-disable import/no-commonjs */

module.exports = {
  /**
   * Navigators
   */
  get createBottomTabNavigator() {
    return require('./navigators/createBottomTabNavigator').default;
  },
  get createMaterialTopTabNavigator() {
    return require('./navigators/createMaterialTopTabNavigator').default;
  },

  /**
   * Views
   */
  get BottomTabBar() {
    return require('./views/BottomTabBar').default;
  },
  get MaterialTopTabBar() {
    return require('./views/MaterialTopTabBar').default;
  },

  /**
   * Utils
   */
  get createTabNavigator() {
    return require('./utils/createTabNavigator').default;
  },
};

Как мы можем заставить IDE (например, VS Code) показывать автозаполнение, используя данные, которые можно найти в существующем файле node_modules/react-navigation-tabs/src/index.js?

Редактировать: Также создан запрос / вопрос на github .

...