TypeScript - 将子类转换为超类

时间:2021-01-27 12:03:35

标签: typescript

以下问题有简单的解决方案吗? 我想将对象 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'}

1 个答案:

答案 0 :(得分:1)

接口只是确保类型安全的编译时构造。您可以创建像 {'f': 'foo'} as any as A 这样的数据,它仍然是完全有效的,尽管您的数据根本不匹配接口。

要“投射”这个,您需要手动创建一个新对象:const a = {a: b.a}

相关问题