microsoft / microsoft/TypeScript

Generated d.ts imports package that is not installed on current project

Aperta
#59,941 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Domain: Declaration Emit Help Wanted
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
2g 4h
PR unite (30g)
132

Descrizione

🔎 Search Terms

"d.ts unresolved modules import"

🕗 Version & Regression Information

Typescript v5.5.4

⏯ Playground Link

No response

💻 Code

Here is a basic reproduction: https://github.com/baptisteArno/zod-d-ts-issue

  1. pnpm install
  2. pnpm turbo build --filter=package-three...
  3. See error because schema is of type any
🙁 Actual behavior

package-two generates with imports from zod which package is not installed in package-two.

This means that the type that we get when importing things from package-two are of inferred type any

🙂 Expected behavior

I would expect the d.ts file to instead imports from installed packages only.

In that very specific case, I would expect it to generate:

export declare const schema: typeof import("package-one").schema

instead of

export declare const schema: import("zod").ZodObject<
  {
    id: import("zod").ZodString;
    name: import("zod").ZodString;
  },
  "strip",
  import("zod").ZodTypeAny,
  {
    id: string;
    name: string;
  },
  {
    id: string;
    name: string;
  }
>;
Additional information about the issue

No response

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con la riproduzione su github.com/baptisteArno/zod-d-ts-issue, esegui pnpm install e pnpm turbo build --filter=package-three..., quindi esamina la dichiarazione generata di package-two. Traccia il modo in cui il compilatore sceglie gli import per i tipi di dichiarazione inferiti; il lavoro è completato quando la dichiarazione non richiede più il pacchetto zod non disponibile e conserva il riferimento atteso a package-one.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
typescript
Ambito
compilers
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.