2017-06-21 7 views
1

これは本質的にTypescriptの反対の目的であることを認識していますが、私はプログラムでtypescriptインターフェイスからオブジェクトを生成できるようにしたいと考えています。私はそれが可能な場合、実装がどのように不自然な心not- -DoTypescriptインターフェイスからオブジェクトを生成

interface Foo { 
    bar: string 
} 

const generateObjFromInterface = (Foo) => // { bar: 'string'} 

:基本的に、私はこのような何かをしたいです!それがまた有益な情報になることは不可能な場合!

ありがとうございます!

+1

ないtypescriptです2.4+を使用する必要が言ってきたようにインタフェースがで存在しないので、唯一の方法は、ソースコードを処理することですランタイム。 [このライブラリ](https://github.com/kimamula/ts-transformer-keys)と同様のものです。 – Saravana

答えて

1

可能です。 typescript 2.4がコーナーの周りにあるので、コンパイル時にtypescript用のカスタムトランスを使用し、そこにあるすべてのプロパティのリストを取得し、結果としてそのようなプロパティを持つオブジェクトを作成することができます。ここで

exampleですが、注意してください - 私はこれは安定版リリースではまだ

+0

これは文字通り私の夢のソリューションのように見える、ありがとう! –

+0

あなたはこのパッケージをまったく使用しましたか?私はこれがユーザーエラーかパッケージ自体の問題かどうかを判断するのに苦労していますが、次のエラーが発生し続けます。ts_transformer_keys_1.keysは関数ではありません –

+0

いいえ実際には使用していません。あなたは、プログラムをコンパイルする方法についてのガイドに従ったか:https://github.com/kimamula/ts-transformer-keys#how-to-use-the-custom-transformer?これは重要なステップです。 – Amid

2

TypeScriptのインターフェイスがJavaScript出力に存在しないため、インターフェイスを介した実行時の反映は不可能です。この活字体を考えると

interface Foo { 
    bar: string 
} 

これは、結果はJavaScriptです:あなたがを何をしたいのか全くJavaScriptが、ありません

enter image description here

のでは非常に不自然である一概には不可能です。

編集:考えてみてください実行時に* .tsソースファイルを検索、読み込み、解析することができます。

関連する問題