microsoft / microsoft/TypeScript

Cannot find type definition file for ambient declaration module

Ouverte
#34,749 11 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Needs Investigation
Langage dominant
Go
Étoiles
111k
Forks
14.3k
Merge moyen
1 j 19 h
PR mergées (30 j)
117

Description

TypeScript Version: 3.6 to 3.8.0-dev.20191025

Search Terms: ambient module triple slash reference path declaration

Code

// A *self-contained* demonstration of the problem follows...
[typings/somemodule/index.d.ts]
declare module "somemodule"
{
  export namespace common {
    export interface Foo {
      bar: string;
      fuzz: Number;
    }
  }
}

[src/index.ts]
/// <reference path="../typings/somemodule/index.d.ts" />

Typescript 3.5.3 works as expected, anything at or above 3.6 has the same issue..

When running tsc -d, for a manually created declaration file, the triple slash reference path file should be preserved in the output declaration file. This particular declaration file acts as a shim for an existing library whose type definitions are incomplete and is to be included as-is and without transpiler manipulation in the output declaration file. This provides accurate intellisense for package consumers and ensures build errors do not occur.

Expected behavior:
Maintain the same triple-slash reference path in the .d.ts file as was in the .ts file.

[dist/index.d.ts]
/// <reference path="../typings/somemodule/index.d.ts" />

Actual behavior:
The reference path is changed to reference types and the relative path is also broken:

[dist/index.d.ts]
/// <reference types="typings/somemodule" />

This causes consuming applications of the package to receive the following build error:
Cannot find type definition file for 'typings/somemodule'.

I have been unsuccessful in manipulating the consuming application to build correctly or provide correct intellisense with the updated directive. The original directive must be preserved.

Playground Link:

Related Issues: I believe this is where the issue was introduced: #32878

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.

Piste de recherche

Reproduisez le problème avec tsc -d en utilisant src/index.ts et typings/somemodule/index.d.ts, puis comparez le dist/index.d.ts généré avec la référence triple-slash attendue. Lisez l’issue associée #32878 et suivez le comportement d’émission des déclarations responsable de la conversion de la référence de chemin. C’est terminé lorsque le chemin de référence d’origine est conservé et que les applications consommatrices ne signalent plus l’absence du fichier de définition de types.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
typescript
Domaine
compilers
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

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