Skip to main content

setText 设置文本

setText

类型: MethodDeclaration

所属类: CommandFunctionList

定义位置: command.ts

描述

设置文本

参数

参数名类型描述默认值
\{element, properties\}`{
element: ElementGetter
properties: Array<{key: string, value: any}>
}`--

返回值

类型: CommandFunction

源代码

位置: 第 4342 行

protected setText({element, properties}: {
element: ElementGetter
properties: Array<{key: string, value: any}>
}): CommandFunction {
const getElement = Command.compileElement(element)
const variables: Array<{key: string, value: any}> = []
const constants: Array<any> = []
for (const property of properties) {
switch (property.key) {
case 'content': {
const getter = Command.compileTextContent(property.value)
// @ts-ignore
if (!getter.constant) {
variables.push({
key: property.key,
value: getter,
})
continue
}
// 如果内容是常量,进入默认分支
}
default:
constants.push(property)
continue
}
}
// 对单属性变量进行优化
if (variables.length === 1 && constants.length === 0) {
const {key, value} = variables[0]
return () => {
const element = getElement()
if (element instanceof TextElement) {
// @ts-ignore
element[key] = value()
}
return true
}
}
// 对单属性常量进行优化
if (variables.length === 0 && constants.length === 1) {
const {key, value} = constants[0]
return () => {
const element = getElement()
if (element instanceof TextElement) {
// @ts-ignore
element[key] = value
}
return true
}
}
return () => {
const element = getElement()
if (element instanceof TextElement) {
for (const property of variables) {
// @ts-ignore
element[property.key] = property.value()
}
for (const property of constants) {
// @ts-ignore
element[property.key] = property.value
}
}
return true
}
}

文档生成时间:2025/7/7 12:07:06