microsoft / microsoft/TypeScript
Cannot find type definition file for ambient declaration module
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere das Problem mit tsc -d unter Verwendung von src/index.ts und typings/somemodule/index.d.ts und vergleiche die generierte dist/index.d.ts mit der erwarteten Triple-Slash-Referenz. Lies den zugehörigen Issue #32878 und verfolge das Verhalten bei der Ausgabe von Deklarationen, das für die Konvertierung der Pfadreferenz verantwortlich ist. Erledigt bedeutet, dass der ursprüngliche Referenzpfad beibehalten wird und konsumierende Anwendungen nicht mehr die fehlende Typdefinitionsdatei melden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100