buildString
():string
Параметр №1
Обязательный- Общее техническое наименование
- targetString
- Русскоязычное имя
- Целевая строка
- Тип
- string
Параметр №2
Обязательный- Общее техническое наименование
- templateVariables
- Русскоязычное имя
- Переменные шаблона
- Тип
- object
Позволяет конструировать строки, используя синтаксис, подобный шаблонным строкам ES6. Однако, ввиду ограничений препроцессора Stylus, необходимо указать через второй параметр объект типа «ассоциативный массив», ключи которого должны ссылаться на имена переменных, указанных в шаблонной строке.
p(buildString("Good morning, ${name}", { name: "Takeshi" }))
Если строка короткая и переменных всего одна-две, то возможно записать
выражение вызова функции
buildString
в одну строку.
p(buildString("Good morning, ${ name }", { name: "Takeshi" }))
Вы можете использовать пробелы внутри фигурных скобок.
p(
buildString(
"In the quaint village of ${ villageName }, nestled amidst the rolling hills of the countryside, lived the " +\
"${ familyName } family. " +\
"Mr. ${ givenName } ${ familyName }, a respected member of the community, was known for his " +\
"kindness and generosity.",
{
villageName: "Willowbrook",
familyName: "Thompson",
givenName: "Jonathan"
}
)
)
В общем случае код будет многострочным.
Будьте осторожны с переносом строки: Stylus не допускает
пробелов после обратный косой черты.
p(buildString("You have ${ messagesCount } message(s)", { messagesCount: 2 }))
Вы можете интерполировать и числовые значения.
// НЕВЕРНЫЙ СИНТАКСИС!!!
p(buildString("Good morning, ${name}", { name }));
К сожалению, Stylus не поддерживает сокращённую
запись для свойств объекта, которая доступна в
ECMAScript-языках начиная с ECMAScript 2015.
interpolationMethodsComparison.$heading
interpolationMethodsComparison.concatenation.$heading
givenName = "Takeshi"
familyName = "Tokugawa"
p("Good morning, " + givenName + " " + familyName)
interpolationMethodsComparison.sprintf.$heading
givenName = "Takeshi"
familyName = "Tokugawa"
outputString = "Good morning, %s %s" % (unquote(givenName) unquote(familyName))
p(outputString)
interpolationMethodsComparison.buildString.$heading
p(
buildString(
"Good morning, ${ givenName } ${ familyName }",
{
givenName: "Takeshi",
familyName: "Tokugawa"
}
)
)