Typescript: Jangan menawarkan pemfaktoran ulang `Konversi ke template string` untuk string sederhana

Dibuat pada 13 Feb 2020  ·  4Komentar  ·  Sumber: microsoft/TypeScript


Versi TypeScript: 3.8.1-rc


Istilah Pencarian:

  • refactor
  • refactoring
  • tindakan kode

Repo
Untuk kode seperti

import ImageEditor from 'tui-image-editor';

Tempatkan kursor pada string

Bug:
A convert to template string refactoring ditawarkan. Ini tidak membantu.

Saya menyarankan agar kami hanya menampilkan convert to template string jika Anda berada pada ekspresi penggabungan string.

Bug Refactorings Fixed

Komentar yang paling membantu

Sama seperti pendapat yang berlawanan, saya sebenarnya menemukan perilaku ini berguna (dalam kasus di mana string template akan legal). Setelah menggunakan TS / JS selama bertahun-tahun, memori otot saya sekarang secara default menjadi ${...} daripada + ke nilai templat menjadi string, dan senang dapat dengan cepat mengubah string yang dimaksud menjadi templat string dalam kasus di mana belum.

Yang mengatakan @DanielRosenwasser , pendekatan potensial lainnya adalah membuat saran jika string yang dipermasalahkan berisi ${ . Hanya pemikiran saja. : sedikit_muka_senyum:

Semua 4 komentar

Jadi jelas ini konyol karena ada posisi tertentu di mana string template tidak valid - saya pikir mungkin tidak masalah untuk menonaktifkan ini untuk string sederhana, tetapi kita harus meninjau kembali apakah kita ingin mengaktifkannya untuk semua string dan menonaktifkannya untuk posisi yang tidak masuk akal seperti

  • impor / ekspor penentu
  • Nama properti
  • Mungkin hal lain?

Saya lebih suka untuk hanya melihat pemfaktoran ulang ini ketika kursor berada pada ekspresi penggabungan string

Selain itu, kami mungkin ingin memperbaiki ini untuk 3.8 (baik untuk rilis final atau dalam build pemulihan) karena agak menjengkelkan jika bohlam muncul untuk setiap string

Sama seperti pendapat yang berlawanan, saya sebenarnya menemukan perilaku ini berguna (dalam kasus di mana string template akan legal). Setelah menggunakan TS / JS selama bertahun-tahun, memori otot saya sekarang secara default menjadi ${...} daripada + ke nilai templat menjadi string, dan senang dapat dengan cepat mengubah string yang dimaksud menjadi templat string dalam kasus di mana belum.

Yang mengatakan @DanielRosenwasser , pendekatan potensial lainnya adalah membuat saran jika string yang dipermasalahkan berisi ${ . Hanya pemikiran saja. : sedikit_muka_senyum:

Hei yang disana 👋

Pemberitahuan cepat untuk mendukung @treybrisbane .

Untuk konteksnya, saya adalah penulis ekstensi VS Code yang menyediakan refaktor JS & TS. Kami dulu menyediakan "Convert to Template Literal". Kami menghapusnya karena sekarang ditangani oleh editor, melalui TypeScript.

Namun, sangat valid (dan nyaman) untuk beralih dari:

const a = "I have some apples";

untuk

const a = `I have some apples`;

Untuk mulai memasukkan variabel di dalamnya.

Saya memahami bahwa ini dibatalkan sebagai efek samping dari perbaikan bug. Saya pikir yang benar-benar ingin kami hindari adalah mengusulkan pemfaktoran ulang untuk hal-hal yang tidak valid seperti impor. Saya memang menerapkan pemeriksaan semacam itu di ekstensi saya.

Anda dapat memeriksa https://github.com/nicoespeon/abracadabra/issues/94 untuk mengetahui konteks lebih lanjut tentang ini.

Jika Anda membutuhkan lebih banyak detail, saya akan dengan senang hati membantu 😄
Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat