現在、私のtypescriptプロジェクトでいくつかのプロトコルバッファ翻訳を実装しています。 protoファイルをProtoBuilderにロードし(protobufjs.d.tsのtypescript定義ファイルを使用)、私はビルダーからProtoBufを返しました。基本型スクリプトprotobufjsを使用した例
私はProtoBufオブジェクトをpbという名前の変数に入れた後にブレークポイントを設定すると、コンソールでpb.decode(バッファ)を呼び出すことができます。しかし、TypeScriptは構文が気に入らない。以下のような試みるものを含む多くの突きと催促、後
:
pb["decode"](buffer)
(これはエラーTS2349は、そのタイプのコールサインを欠い表現を呼び出すことはできませんできます。)
私はまだ活字体コンパイラを取得することはできませんコードのように。
TypeScript ProtoBufオブジェクトからMetaMessageオブジェクト内に埋め込まれたデコード関数に到達するにはどうすればよいですか?
重要な場合は、Visual Studio 2015でこれを行います。
編集:
var decoder: any = pb["decode"];
decoder(buffer);
しかし、存在する場合、私はよりエレガントな解決策を好むだろう: 私が使用して問題を回避することができます。
私はprotobufについて何も知らないけど、TypeScriptでは 'pb ['decode'](buffer)'や '( pb).decode(buffer)'を実行できるはずです。 –
最初のオプション(私の質問で明らかに四角い中括弧が削除されていました)は有効ではありませんでしたが、 var decoder:any = pb ['decode']; は私にデコーダ(バッファ)への呼び出しを許可しました。私はもっと見栄えの良い答えを期待していますので、少し開けておきますが、将来的には便利になる可能性があるので、確かに( pb)ビットを感謝します。 –
Chris
"有効ではありませんでした"?ビルドエラーが発生しましたか?もしそうなら、あなたの質問にそれを加えることは非常に役に立ちます... –