Supprimer les champs de l'objet d'interface dactylographié

Je reçois une réponse json et je l'ai stocké dans le mongodb, mais les champs dont je n'ai pas besoin entrent également dans la base de données, est-ce qu'il y a lieu de supprimer les champs indésirables?

interface Test{ name:string }; const temp :Test = JSON.parse('{ "name":"someName","age":20 }') as Test; console.log(temp); 

Sortie:

 { name: 'someName', age: 20 } 

Vous pouvez utiliser une fonction qui sélectionne certaines propriétés à partir d'un objet donné:

 function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> { const copy = {} as Pick<T, K>; keys.forEach(key => copy[key] = obj[key]); return copy; } 

Alors:

 let obj = { "name": "someName", "age": 20 }; let copy = pick(obj, "name") as Test; console.log(copy); // { name: "someName" } 

Supposons que vous souhaitez supprimer l'âge

 temp = {...temp, age: undefined} 

Cela éliminera l' age de votre objet pour de bon.

Il n'y a rien que vous puissiez faire avec les interfaces qui affecteront le comportement d'exécution car les interfaces n'existent pas au moment de l'exécution. Vous devrez supprimer les propriétés de votre objet en utilisant delete :

 let obj = JSON.parse('{ "name":"someName","age":20 }') delete obj.age;