microsoft / microsoft/TypeScript
Type definitions overshadowing
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
TypeScript Version: 3.8.3
(also tried 3.9.0-dev.20200310)
Search Terms:
"Module '"immutable"' has no exported member"
Code
(not self contained)
import { hash } from "immutable";
export function test(): number {
return hash(1);
}
Actual behavior:
src/index.ts:1:10 - error TS2305: Module '"immutable"' has no exported member 'hash'.
1 import { hash } from "immutable";
~~~~
even though
grep "export function hash" node_modules/immutable/dist/immutable.d.ts
reveals
export function hash(value: any): number;
Because it uses type definitions in
node_modules/@types/draft-js/node_modules/immutable/dist/immutable.d.ts
instead of
node_modules/immutable/dist/immutable.d.ts
Demo:
sadly I did not find any way to put it in a playground, in any case:
https://gitlab.com/rawieo/issue_demo_1
Related Issues:
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
Beginnen Sie mit src/index.ts und vergleichen Sie die Deklarationen in node_modules/immutable/dist/immutable.d.ts und node_modules/@types/draft-js/node_modules/immutable/dist/immutable.d.ts. Reproduzieren Sie den Import mit TypeScript 3.8.3 oder der angegebenen nightly-Version und verfolgen Sie anschließend die Modulauflösung, um zu verstehen, warum die verschachtelten Definitionen ausgewählt werden. Erledigt ist dies, wenn der gültige hash-Export ohne TS2305 aufgelöst wird.
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