1

TypeScript が提供する優れたタイプ セーフ機能を使用して、新しい種類の問題に直面しています。強く型付けされたビュー モデルを渡したいとします。これらをプリミティブ プロパティまたは KO ラップ プロパティで入力する方が良いですか? 両方をサポートする標準インターフェースを作成する方法はありますか? のように

interface IPerson {
    FirstName: String;
}

class Person implements IPerson {
    FirstName: String;
}

class KOPerson implements IPerson {
    FirstName:  KnockoutObservableString;
}

明らかに、上記はコンパイルされません。ビューモデルのラップされていないバージョンまたは KO ラップされたバージョンを同じ共有インターフェイスを介して渡すことができる、ある種のポリモーフィズムを達成する方法はありますか? どこでも「任意」の入力に戻らずに?ノックアウト認識をすべてのビュー モデル タイプに組み込むのは嫌いです。この一連の質問が理にかなっていることを願っています!

4

1 に答える 1

2

KOの認識をビューモデルに焼き付けたくない理由はわかりませんか?Knockoutから別のMVXフレームワークに切り替えることにした場合は、とにかくビューモデルを再考する必要があります。

私がすることは、バックエンドから返すパラメーターのTypeScriptインターフェイスを作成することです。このようにして、バックエンドとのインターフェースが明確に入力および定義されます。別のフレームワークに切り替えたい場合は、この入力を再利用できます。

于 2013-03-11T08:52:02.423 に答える