注:これは私が非常に有用だと感じているように、他の人が使用するために自分自身で公開したい最初のモジュールです。 TypeScript用の型付きデータ直列化エンジンです。私はここで何をやるべきかについて少し失われています。私は決定的な答えが必要です。だから私はES6コレクション型、Set
とMap
を使用していますnpm
モジュールを作成しES6コレクションタイプのNPMモジュールを作成して公開する
...今日でジャンプをありがとう、とのは、それを取得しましょう。これらのコレクションの種類は次のとおりです。
内部使用(クラスのプロパティとして)私の活字体/ ES7デコレータベースのAPIを介してサポート
私のモジュールの内部実装を燃料に使用し- 私が理解している限り、私は単に
package.json
を通してそれらに依存し、それらを私のソースにインポートすることができるので、これらのタイプの多くは問題ではありません。それから私はすべて揃っている、彼らはいつもそこにいるだろう。一方に私がそうするならば、それは、(これらの輸入は、私がに頼るネイティブ地図/セットのオブジェクト(使用可能な場合)、および型の検出との競合を上書きすることを私の理解でありますこれらのインポートは、利用可能な場合はネイティブオブジェクトを生成しますか?)上記のタイプの検出について
...それは最高の例を通じて実証されています - ユーザーが自分のモジュールで
Map
オブジェクトを使用した場合、これは、それがどのように行われるかである。// Consumer code. class MapContainer { @JsonMember mapValues: Map<number, string>; }
そして、これは地図が検出され、私のモジュール内をどのように処理されるかです:
// Internal module code. // Just for the sake of clarity: 'sourceValue === new MapContainer().mapValues' if (sourceValue.constructor === Map) { // Handle 'sourceValue' as a map object... }
これがどのように競合を引き起こすのかは明らかです。これはまた別の問題です。ユーザがネイティブで使用可能な実装を使用する代わりに、
import
マップ/設定する場合、モジュールの内部コードで認識されません。この場合、依存関係はどのように定義する必要がありますか?
- 単純に私のコードの中にいくつかの短いpolyfillsジャム、ユーザーは、彼らがすることができますどのような方法でそれを処理してみましょうか?
require('es6-map/implement')
を使用しますか?このよう__Map
と__Set
として、私のソースの一部エイリアシングを通じて- インポート
Map
とSet
(どのように私は私のモジュールのユーザーがドキュメント/限界で、それを言及する以外にも、同じことを行うの?確実ん)、および文字列ベース」を使用コンストラクタ参照を比較するのではなく、「クラス名」の検出?(これは汚れているように見える)