Typescript: Ne pas proposer de refactoring `Convertir en chaîne modèle` pour les chaînes simples

Créé le 13 févr. 2020  ·  4Commentaires  ·  Source: microsoft/TypeScript


Version TypeScript: 3.8.1-rc


Termes de recherche:

  • refactor
  • refactorisation
  • actions de code

Repo
Pour du code tel que

import ImageEditor from 'tui-image-editor';

Placez le curseur sur la chaîne

Punaise:
Une refactorisation convert to template string est offerte. Cela ne sert à rien.

Je suggère de ne montrer convert to template string si vous êtes sur une expression de concaténation de chaîne.

Bug Refactorings Fixed

Commentaire le plus utile

Tout comme une opinion contrastée, je trouve en fait ce comportement utile (dans les cas où les chaînes de modèle seraient légales). Après avoir utilisé TS / JS pendant des années, ma mémoire musculaire est maintenant par défaut ${...} plutôt que + pour les valeurs de modèle en chaînes, et c'est bien de pouvoir convertir rapidement la chaîne en question en modèle string dans les cas où ce n'est pas déjà fait.

Cela dit @DanielRosenwasser , une autre approche potentielle pourrait être de faire la suggestion si la chaîne en question contient ${ . Juste une pensée. : légèrement_smiling_face:

Tous les 4 commentaires

Il est donc clair que c'est idiot car il y a certaines positions où une chaîne de modèle n'est pas valide - je pense qu'il serait probablement correct de désactiver cela pour les chaînes simples, mais nous devrions revoir si nous voulons l'activer pour toutes les chaînes et le désactiver pour des positions absurdes comme

  • spécificateurs d'importation / exportation
  • Noms de propriété
  • Peut-être d'autres trucs?

Je préfère ne voir cette refactorisation que lorsque le curseur sur une expression de concaténation de chaîne

De plus, nous voulons probablement résoudre ce problème pour la version 3.8 (que ce soit pour la version finale ou dans une version de récupération) car il est plutôt ennuyeux que l'ampoule apparaisse pour chaque chaîne.

Tout comme une opinion contrastée, je trouve en fait ce comportement utile (dans les cas où les chaînes de modèle seraient légales). Après avoir utilisé TS / JS pendant des années, ma mémoire musculaire est maintenant par défaut ${...} plutôt que + pour les valeurs de modèle en chaînes, et c'est bien de pouvoir convertir rapidement la chaîne en question en modèle string dans les cas où ce n'est pas déjà fait.

Cela dit @DanielRosenwasser , une autre approche potentielle pourrait être de faire la suggestion si la chaîne en question contient ${ . Juste une pensée. : légèrement_smiling_face:

Hé là 👋

Un avertissement rapide pour soutenir le point de vue de

Pour le contexte, je suis l'auteur d'une extension VS Code qui fournit des refactorisations JS & TS. Nous avions l'habitude de fournir "Convertir en modèle littéral". Nous l'avons supprimé car il est désormais géré par l'éditeur, via TypeScript.

Cependant, il était très valide (et pratique) de passer de:

const a = "I have some apples";

à

const a = `I have some apples`;

Pour commencer à insérer des variables à l'intérieur.

Je comprends que cela a été abandonné comme effet secondaire d'une correction de bogue. Je pense que ce que nous voulons vraiment éviter, c'est de proposer la refactorisation des choses invalides comme les importations. J'ai effectivement implémenté ce genre de vérification dans mon extension.

Vous pouvez consulter https://github.com/nicoespeon/abracadabra/issues/94 pour plus de contexte à ce sujet.

Si vous avez besoin de plus de détails, je serais heureux de vous aider 😄
Je vous remercie!

Cette page vous a été utile?
0 / 5 - 0 notes