2017-11-13 7 views
0

これはちょっと楽しそうです。我々はこれを持って言う:ブールアノテーション付きのJSオブジェクトをデコレートする

return { 
    c: p.then(v => new Client(conf).ensure()) 
} 

私はそれにブール値を追加する必要があり、このような何か:

return { 
    inject: true 
    c: p.then(v => new Client(conf).ensure()) 
} 

は、返されたオブジェクトを飾るためにいくつかのESNext中の方法またはは、そのようなものはありますか?

@inject 
return { 
    c: p.then(v => new Client(conf).ensure()) 
} 

どのように動作しますか?

let addInjectProp = function(target){ 
    target['inject'] = true; 
    return target; 
} 

などです。

+0

?この値にどのようにアクセスするつもりですか? – loganfsmyth

+0

この単純なケースでは、返されたオブジェクトにブール値を追加するだけなので、更新された質問に表示されます。 – Olegzandr

+0

私は質問を少し明確にしました(私が願って) – Olegzandr

答えて

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()) 
}) 
+0

ええ、それは派手ではありません! :)これはライブラリのため、私のすべてのユーザはそのヘルパー関数を書く必要がありますが、確かに、私は疑問に思っていました:) – Olegzandr

関連する問題