Şablon değişmezlerini kullanırken tablo formatlarında bir sorun olduğunu farkettim.Şablon değişmez enterpolasyon boşlukları beyaz boşluk tablo
böyle bir şey yaparken:
Hello World
Goodbye World
Bu daha da karmaşık için yapılır: {güle} parçası olarak dize baskılar 'Goodbye' dört harf kısa olduğu için
var hello = 'Hello',
bye = 'Goodbye';
console.log(`
${hello} World
${bye} World
`);
diziler veya nesnelerin interpolasyonları.
Bu tür bir problemle başa çıkmanın bir yolunu bulup bulmadığını merak ediyorum. Bir dizge için aralıklı tablo biçimlendirmesi enterpolasyon sırasında tutulabilir.
1 Şimdi bir şablon etiketinin dizeleri ve dizileri kullandığını varsayalım. Diziler, kelimeler arasındaki boşluklarla birleştirilmiştir.
var hello = 'Hello',
bye = 'Goodbye',
phrase = ['I', 'like'];
console.log(someTag`
${hello} World
${bye} World
Some things I like:
${phrase} sunsets.
${['I', 'like']} candy.
`);
Eğer Array köşeli parantez, tırnak, dolar, küme ayracı ve böylece enterpolasyondan önce dize (görsel) uzunluğuna doğru sayıp söyleyemem Sadece durumda. Kelimeler arasındaki boşluklar enterpolasyondan sonra dize uzunluğuna doğru sayılır. Girintiler, ekstra karakterlerin kaybı ve etiket işleme sırasında karakterlerin eklenmesiyle gerçekleştirilir.
Bu sorunun cevabı kabul edildi, ancak daha fazla tartışma görmek istiyorum. Bu sorunun birden fazla cevabı olabilir.
nasıl şablon dizeleri olmadan bu çözecektir? – thefourtheye
Çok eğlenceli. Bu tür bir şey için tablo biçimlendiricileri ve dolgu malzemeleri var, ama aynı soruyu beyaz alan için nazik olduğu bilinen şablon dizgilerle beklemiyordum. Dahası, eğer eklentiler başka bir etiket fonksiyonu tarafından isteniyorsa ve bir tablo formatlayıcı/padder sadece bir string üretir. Evet sorun başka yerde çözüldü, ancak bu şablon değişmezleri için tamamen yeni bir sorun. Sanırım diğer seçenek bu tür şeyler için onları kullanmamak. –
Şablon değişmezleri, varsayılan olarak boşluklarla ilgili hiçbir şey yapmazlar, aslında, enterpolasyonlu dizeler gibi davranırlar. Daha gelişmiş davranışlar istiyorsanız, aradığınız dönüşümü yapmak için etiketli bir şablon hazırlaması kullanmanız gerekir. – loganfsmyth