这只是一点乐趣。说我们有这个:
return {
c: p.then(v => new Client(conf).ensure())
}
我需要为它添加一个布尔值,如下所示:
return {
inject: true
c: p.then(v => new Client(conf).ensure())
}
在ESNext或typescript中是否有某种方式来装饰返回的对象,类似的东西?
@inject
return {
c: p.then(v => new Client(conf).ensure())
}
它是如何工作的?像这样的东西:
let addInjectProp = function(target){
target['inject'] = true;
return target;
}
或类似的东西。
答案 0 :(得分:3)
我只会编写一个通用函数并在其中使用它,例如
function inject<T>(t: T): T & { inject: true } {
return Object.assign({}, t, { inject: true as true });
}
使用:
return inject({
c: p.then(v => new Client(conf).ensure())
})