我有一个函数,我必须包装另一个函数,如果它存在或替换它,如果它没有。这意味着参数的数量会根据情况而变化。
这就是我的意思 -
列列表:
const myColumns = [
{name: 'My Field', formatter: function(row, cell, value, colDef, data){
... do stuff to value...
return value;
},
{name: 'My Other Field'}
]
有些人有格式化程序而有些人没有格式化程序。这是我对包装'的部分解决方案。功能:
return myColumns.map(columns => {
function wrapFormatting(value){
return `<span class="foobar">${value}</value>`
}
if( column.formatters ) {
column.formatters = _.flow(column.formatter, wrapFormatting);
} else {
column.formatter = (row, cell, value) => value => wrapFormatting;
}
})
我天真的期望是,在else
阻止格式化程序中,我们反向咖喱&#39; / uncurry这三个参数,最终看起来像这样:
column.formatter = function(row, cell, value){
wrapFormatting(value);
}
但是eslint告诉我,值是a)已在上限范围内声明,b)已定义但从未使用过。如果我更改其中一个(我有(row, cell, value) => val => wrapFormatting
我将它们定义为“但从未使用过”#。
我觉得我错过了一个技巧,因为我不能(row, cell, value) => value => wrapFormatting(value)
,因为它会立即调用该函数,当column.formatter是时,它不会被调用调用。
答案 0 :(得分:3)
您正在寻找
[tf.shape(A)[0], n, m]
不确定为什么您认为自己有[?, n, m]
作为参数两次而且从不致电column.formatter = (row, cell, value) => wrapFormatting(value);
但返回它。