以下问题有简单的解决方案吗? 我想将对象 B 投射到对象 A 中。
感谢您的解决方案。
export interface A {
a: string;
}
export interface B extends A {
b: string;
}
const b: B = {
a: 'test1',
b: 'test2'
};
console.log(b); //output: {a:'test1', b:'test2'}
console.log(b as A); //output: {a:'test1', b:'test2'}, but i want {a:'test1'}
答案 0 :(得分:1)
接口只是确保类型安全的编译时构造。您可以创建像 {'f': 'foo'} as any as A
这样的数据,它仍然是完全有效的,尽管您的数据根本不匹配接口。
要“投射”这个,您需要手动创建一个新对象:const a = {a: b.a}
。