Skip to content

ParameterToken

bhsd edited this page Nov 24, 2023 · 28 revisions

ParameterToken

模板或魔术字的参数。

实例属性

name: string

  • 参数名。
var root = Parser.parse('{{a|b| c = 1}}'),
    [anonymous, named] = root.querySelectorAll('parameter');
assert.strictEqual(anonymous.name, '1');
assert.strictEqual(named.name, 'c');

anon: boolean

  • 是否是匿名参数。
var root = Parser.parse('{{a|b| c = 1}}'),
    [anonymous, named] = root.querySelectorAll('parameter');
assert(anonymous.anon === true);
assert(named.anon === false);

原型属性

value: string

  • 参数值。实际上获得自getValue方法。
var root = Parser.parse('{{a| b | c = 1 }}'),
    [anonymous, named] = root.querySelectorAll('parameter');
assert.strictEqual(anonymous.value, ' b '); // 模板的匿名参数保留首尾的空白字符
assert.strictEqual(named.value, '1'); // 模板的命名参数不保留首尾的空白字符

原型方法

getValue(): string

  • 获取参数值。
var root = Parser.parse('{{a| b | c = 1 }}'),
    [anonymous, named] = root.querySelectorAll('parameter');
assert.strictEqual(anonymous.getValue(), ' b '); // 模板的匿名参数保留首尾的空白字符
assert.strictEqual(named.getValue(), '1'); // 模板的命名参数不保留首尾的空白字符

setValue(value: any): void

  • 设置参数值。
var root = Parser.parse('{{a|b=1}}'),
    param = root.querySelector('parameter');
param.setValue(' 2 ');
assert.strictEqual(root.toString(), '{{a|b= 2 }}'); // setValue方法总是保留空白字符,哪怕是无效的

rename(key: string, force?: boolean = false): void

  • 重命名参数,可选是否在导致重复参数时抛出错误。
var root = Parser.parse('{{a|b=1|c=2}}'),
    param = root.querySelector('parameter');
try {
    param.rename('c');
    throw new Error();
} catch (e) {
    assert.strictEqual(e.message, '参数更名造成重复参数:c');
}

Clone this wiki locally