从typescript接口对象中删除字段

Bek*_*zod 4 javascript json typescript

我得到了一个json响应并将其存储在mongodb中,但是我不需要的字段也进入了数据库,无论如何要剥离不道德的字段?

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

输出:

{ name: 'someName', age: 20 }
Run Code Online (Sandbox Code Playgroud)

Nit*_*mer 6

您可以使用从给定对象中选择某些属性的函数:

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;
}
Run Code Online (Sandbox Code Playgroud)

然后:

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

  • 你看过[源](https://github.com/kimamula/ts-transformer-keys/blob/master/transformer.ts)吗?它实际上在运行时使用 ts 编译器 api 打开 ts 文件以获取对象中的键。这听起来像是一种极端的矫枉过正,我不会使用它 (2认同)