microsoft / microsoft/TypeScript

Typescript fails to resolve module when type definitions are placed outside the root path (with typesVersions)

Ouverte
#43,133 1 commentaire 2 réactions 1 personne assignée Voir sur GitHub

@rbuckton y travaille déjà.

Depuis le 9/3/2021.

Needs Investigation Rescheduled
Langage dominant
Go
Étoiles
111k
Forks
14.3k
Merge moyen
2 j 4 h
PR mergées (30 j)
132

Description

Bug Report

If you have a project with embedded type definitions that are not in root path. i.e.: src/index.d.ts and src/ts4.1/index.d.ts, TypeScript fails to resolve this module when using the following approach:

  "types": "./src/index.d.ts",
  "typesVersions": {
    ">=4.1": {
      "*": [
        "src/ts4.1/*"
      ]
    }
  },

src/i18n/config.ts:4:34 - error TS2307: Cannot find module 'react-i18next' or its corresponding type declarations.

import { useTranslation } from 'react-i18next';

It works, if we replace * to index.d.ts, like this:

  "types": "./src/index.d.ts",
  "typesVersions": {
    ">=4.1": {
      "*": [
        "src/ts4.1/index.d.ts"
      ]
    }
  },

However, when we replace it with the actual file (src/ts4.1/index.d.ts), VS Code sometimes imports the module incorrectly, i.e.:

import { useTranslation } from 'react-i18next/*';

Rather than:

import { useTranslation } from 'react-i18next';

Here you can find some context.

💻 Code

https://github.com/i18next/react-i18next/blob/master/package.json#L7

"types": "./src/index.d.ts",
"typesVersions": {
  ">=4.1": {
    "*": [
      "src/ts4.1/index.d.ts"
    ]
  }
},
🙁 Actual behavior

It fails to compile, and fails to auto-import properly.

import { useTranslation } from 'react-i18next/*';
🙂 Expected behavior

Resolve the module and import it properly.

import { useTranslation } from 'react-i18next';

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.