TypeScript-从任何obejct提取接口字段

TypeScript-从任何obejct提取接口字段,typescript,Typescript,我试图只从对象中提取接口字段 我看到有一种方法可以用'as'关键字来实现,但它对我不起作用 我试过: let data = { name: "toto", age: 10 } interface Human { name: string; } let p = data as Human console.log(p) 但我得到了: [LOG]: { "name": "toto", "ag

我试图只从对象中提取接口字段 我看到有一种方法可以用'as'关键字来实现,但它对我不起作用

我试过:

let data = {
    name: "toto",
    age: 10
}

interface Human {
    name: string;
}


let p = data as Human

console.log(p)
但我得到了:

[LOG]: {
  "name": "toto",
  "age": 10
} 
有什么方法可以直接得到:

[LOG]: {
    name: "toto"
}

亲爱的,

不,这样不行。使用
as
时,您只能告诉编译器您确定它是哪种类型的对象。但是,您不会自动将与接口不匹配的不需要的字段放在一边

这是正确执行此操作的一种方法:

interface IHuman {
    name: string;
}

class Human implements IHuman {
    constructor(public name: string) {}
}

let human: IHuman = new Human(data.name);