[英]Extract only required variable from Response - Angular 7
I have the following interface我有以下界面
interface Employee{name?:string;id?:string;role?:string;}
I Have a Response like this我有这样的回应
{
"name": "John",
"id": "ID77777",
"role": "Engineer",
"bloodType": "O+ve",
"placeOfDeployment": "NY"
}
I want to extract only the member variables of Interface.So after i am done with the mapping i should get我只想提取接口的成员变量。所以在我完成映射后我应该得到
{
"name": "John",
"id": "ID77777",
"role": "Engineer"
}
You can use lodash which has pick
function or here's vanilla js with same result.您可以使用
pick
function 的 lodash 或这里的 vanilla js,结果相同。
const res = {"name": "John","id": "ID77777","role": "Engineer","bloodType": "O+ve","placeOfDeployment": "NY"};
const user = ["name", "id", "role"].reduce((acc, key) => {
acc[key] = res[key];
return acc;
}, {})
Note: handle case where res has missing keys.注意:处理 res 缺少键的情况。
You can use object destructing您可以使用 object 破坏
const response = { "name": "John", "id": "ID77777", "role": "Engineer", "bloodType": "O+ve", "placeOfDeployment": "NY" } // this will extract name,id,role property from response const {name,id,role} = response; // create a new object and assign those properties let obj = { name, id, role }; console.log(obj)
You can use ts-transformer-keys , which enables you to obtain keys of given type.您可以使用ts-transformer-keys ,它使您能够获取给定类型的密钥。
import { keys } from 'ts-transformer-keys';
const keysOfEmployee = keys<Employee>();
const response = {
"name": "John",
"id": "ID77777",
"role": "Engineer",
"bloodType": "O+ve",
"placeOfDeployment": "NY"
};
const result = {};
keysOfEmployee.forEach(k => result[k] = response[k]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.