Typescript: Não ofereça refatoração `Convert to template string` para strings simples

Criado em 13 fev. 2020  ·  4Comentários  ·  Fonte: microsoft/TypeScript


Versão TypeScript: 3.8.1-rc


Termos de pesquisa:

  • refatorar
  • reestruturação
  • ações de código

Repo
Para códigos como

import ImageEditor from 'tui-image-editor';

Coloque o cursor na string

Erro:
Uma refatoração convert to template string é oferecida. Isso não ajuda.

Sugiro que mostremos apenas convert to template string se você estiver em uma expressão de concatenação de string.

Bug Refactorings Fixed

Comentários muito úteis

Apenas como uma opinião contrastante, eu realmente acho esse comportamento útil (nos casos em que strings de modelo seriam legais). Depois de usar TS / JS por anos, minha memória muscular agora é padronizada para ${...} vez de + para valores de modelo em strings, e é bom ser capaz de converter rapidamente a string em questão em um modelo string nos casos em que ainda não o é.

Dito isso , ${ . Apenas um pensamento. : ligeiramente_smiling_face:

Todos 4 comentários

Então, claramente, isso é bobo porque há certas posições em que uma string de modelo não é válida - acho que provavelmente não haveria problema em desativar isso para strings simples, mas devemos revisar se queremos habilitá-lo para todas as strings e desabilitá-lo para posições sem sentido como

  • especificadores de importação / exportação
  • Nomes de propriedades
  • Talvez outras coisas?

Eu prefiro ver essa refatoração apenas quando o cursor estiver em uma expressão de concatenação de string

Além disso, provavelmente queremos consertar isso para 3.8 (para a versão final ou em uma compilação de recuperação), pois é bastante irritante ter a lâmpada acesa para cada string

Apenas como uma opinião contrastante, eu realmente acho esse comportamento útil (nos casos em que strings de modelo seriam legais). Depois de usar TS / JS por anos, minha memória muscular agora é padronizada para ${...} vez de + para valores de modelo em strings, e é bom ser capaz de converter rapidamente a string em questão em um modelo string nos casos em que ainda não o é.

Dito isso , ${ . Apenas um pensamento. : ligeiramente_smiling_face:

Olá there

Um alerta rápido para apoiar o ponto de vista do

Para o contexto, sou o autor de uma extensão do VS Code que fornece refatorações JS e TS. Costumávamos fornecer "Convert to Template Literal". Removemos, pois agora é gerenciado pelo editor, por meio do TypeScript.

No entanto, era muito válido (e conveniente) mudar de:

const a = "I have some apples";

para

const a = `I have some apples`;

Para começar a inserir variáveis ​​dentro.

Eu entendo que isso foi descartado como um efeito colateral de uma correção de bug. Acho que o que realmente queremos evitar é propor a refatoração para coisas inválidas como importações. Implementei esse tipo de verificação em minha extensão, de fato.

Você pode verificar https://github.com/nicoespeon/abracadabra/issues/94 para mais contexto sobre isso.

Se precisar de mais detalhes, terei todo o gosto em ajudar 😄
Obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações