microsoft / microsoft/TypeScript

Preserve type aliases on implement interface

Aperta
#36,761 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Experience Enhancement Suggestion
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
1g 19h
PR unite (30g)
117

Descrizione

From https://github.com/microsoft/vscode/issues/90061

TypeScript Version: 3.8.1-rc

Search Terms:

  • quick fix
  • implement interface

Repo

export type UrlString = string;
export type UUID = string;

export interface I_IdToUrlMapper {
	mapIdToUrl(id: UUID): UrlString
	mapUrlToId(url: UrlString): UUID
}

export class IdToUrlMapper implements I_IdToUrlMapper {

}

Run implement interface on IdToUrlMapper

Expected behavior:
Type aliases are preserved

export class IdToUrlMapper implements I_IdToUrlMapper {
    mapIdToUrl(id: UUID): UrlString {
        throw new Error("Method not implemented.");
    }
    mapUrlToId(url: UrlString): UUID {
        throw new Error("Method not implemented.");
    }
}

Actual behavior:
Both methods use string:

export class IdToUrlMapper implements I_IdToUrlMapper {
    mapIdToUrl(id: string): string {
        throw new Error("Method not implemented.");
    }
    mapUrlToId(url: string): string {
        throw new Error("Method not implemented.");
    }
}

Related Issues

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 il quick fix “implement interface” del TypeScript language-service usando l'esempio riprodotto di IdToUrlMapper. Confronta le firme dei metodi generate con l'output previsto e verifica che gli alias di tipo come UUID e UrlString vengano preservati invece di essere ridotti a string.

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

Valutazione

Stack tecnologico
typescript
Ambito
tooling
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.