Typescript: No ofrezca la refactorización de `Convertir a cadena de plantilla 'para cadenas simples

Creado en 13 feb. 2020  ·  4Comentarios  ·  Fuente: microsoft/TypeScript


Versión de TypeScript: 3.8.1-rc


Términos de búsqueda:

  • refactorizar
  • refactorización
  • acciones de código

Repo
Para código como

import ImageEditor from 'tui-image-editor';

Coloque el cursor en la cuerda

Insecto:
Se ofrece una refactorización de convert to template string . Esto no ayuda.

Sugiero que solo mostremos convert to template string si está en una expresión de concatenación de cadenas.

Bug Refactorings Fixed

Comentario más útil

Solo como una opinión contrastante, en realidad encuentro útil este comportamiento (en los casos en que las cadenas de plantillas serían legales). Después de usar TS / JS durante años, mi memoria muscular ahora tiene un valor predeterminado de ${...} lugar de + para convertir los valores de la plantilla en cadenas, y es bueno poder convertir rápidamente la cadena en cuestión en una plantilla cadena en los casos en los que aún no lo está.

Dicho esto, @DanielRosenwasser , otro enfoque potencial podría ser hacer la sugerencia si la cadena en cuestión contiene ${ . Solo un pensamiento. : leve_sonriente_cara:

Todos 4 comentarios

Claramente, esto es una tontería porque hay ciertas posiciones en las que una cadena de plantilla no es válida; creo que probablemente estaría bien deshabilitar esto para cadenas simples, pero deberíamos revisar si queremos habilitarlo para todas las cadenas y deshabilitarlo para posiciones sin sentido como

  • especificadores de importación / exportación
  • Nombres de propiedad
  • ¿Quizás otras cosas?

Preferiría ver esta refactorización solo cuando el cursor en una expresión de concatenación de cadenas

Además, probablemente queramos arreglar esto para 3.8 (ya sea para la versión final o en una compilación de recuperación) ya que es bastante molesto que la bombilla se muestre para cada cadena.

Solo como una opinión contrastante, en realidad encuentro útil este comportamiento (en los casos en que las cadenas de plantillas serían legales). Después de usar TS / JS durante años, mi memoria muscular ahora tiene un valor predeterminado de ${...} lugar de + para convertir los valores de la plantilla en cadenas, y es bueno poder convertir rápidamente la cadena en cuestión en una plantilla cadena en los casos en los que aún no lo está.

Dicho esto, @DanielRosenwasser , otro enfoque potencial podría ser hacer la sugerencia si la cadena en cuestión contiene ${ . Solo un pensamiento. : leve_sonriente_cara:

Hola there

Un aviso rápido para apoyar el punto de vista de

Para el contexto, soy el autor de una extensión de VS Code que proporciona refactorizaciones de JS y TS. Solíamos proporcionar "Convertir a plantilla literal". Lo eliminamos ya que ahora lo maneja el editor, a través de TypeScript.

Sin embargo, fue muy válido (y conveniente) cambiar de:

const a = "I have some apples";

a

const a = `I have some apples`;

Para comenzar a insertar variables dentro.

Entiendo que esto se eliminó como efecto secundario de una corrección de errores. Creo que lo que realmente queremos evitar es proponer la refactorización para cosas no válidas como las importaciones. Realmente implementé ese tipo de verificación en mi extensión.

Puede consultar https://github.com/nicoespeon/abracadabra/issues/94 para obtener más contexto sobre esto.

Si necesitas más detalles, estaré encantado de ayudarte 😄
¡Gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones