私は検索を実行する機能を持っています。検索は、IDを探すか、またはいくつかの属性を照会することによって、いくつかの異なる方法で行うことができます。しかし、私は渡すことができますどのような属性を制限したい、私は私のような何かができると思った:。Typescriptインターフェイスを使用すると、インターフェイスに定義されていない属性を破棄できますか?
interface Search {
_id?: string
people?: number
partyName?: string
otherField? string
}
function search(query: Search) {
myDbConnection.find(query).then(... // etc
}
問題は、任意のオブジェクトは、これに準拠することで、query
は、追加の属性を含めることができます。たとえば、これは渡すことができます。
search({otherField: "foo", aProtectedField: "bar"})
とaProtectedField
はfind
に渡されます。
渡された属性を強制するタイスクリプトの方法があるのだろうかと思います。 Railsの世界からの強力なパラメータの並べ替え。私はpick
フォームlodashや多分SearchObject
クラスを作って、余分な属性を破棄する手段としてコンストラクタを使うこともできると知っていますが、これは私が知りませんTypescript内でこれを行う方法です約。