microsoft / microsoft/TypeScript

"Extract to function" refactor is not suggested if selection contains `if` statement (conditional return)

Ouverte
#39,640 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

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

Description

TypeScript Version: 3.9.2

Search Terms:

Code

const fn = ({ condition }: { condition: boolean }) => {
    if (condition) {
        return 1;
    } else {
        return 2;
    }
};

Select the whole if statement, including the else, like this:

image

Expected behavior:

The "extract to function" refactor should be suggested. When the refactor is used, it should produce code that looks like this:

const fn = ({ condition }: { condition: boolean }) => {
    return newFunction(condition);
};
function newFunction(condition: boolean) {
    if (condition) {
        return 1;
    } else {
        return 2;
    }
}

Actual behavior:

The "extract to function" refactor is not suggested (testing in VS Code).

Playground Link:

Related Issues:

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 l’extrait TypeScript fourni dans VS Code avec TypeScript 3.9.2, en sélectionnant l’instruction if complète, y compris else. Étudiez le comportement de la refactorisation extract-to-function et vérifiez que la suggestion apparaît et produit l’extraction de fonction attendue présentée dans l’issue.

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

Évaluation

Stack technique
typescript
Domaine
developer-experience, tooling
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

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