【发布时间】:2019-09-06 01:30:54
【问题描述】:
我有两个接口,A 和 B。 B 是A 的扩展:
interface A {
foo: string;
}
interface B extends A {
bar: string;
}
另外,我有一个对象a 具有A 接口:
const a: A = {
foo: "fooValue"
}
我需要构建一个函数,该函数根据接口A 的输入创建一个接口B 的新对象,并添加一个默认值。
我已经创建了一个:
function AtoB(a: A): B {
return {
...a,
bar: "defaultBarValue"
};
}
但是这个函数对B接口了解太多了。而一旦我更改了B 接口,我也需要一直更改此功能。
也许有人知道更多“TypeScript”方法来构建这样的功能?
也许我需要使用类来执行此操作?
【问题讨论】:
-
这种方法有什么问题?每当
B接口更改时,您将在编译时在AtoB中收到类型错误,并且您知道在尝试运行它之前要修复它吗?是不是只想定义一次B接口和值? -
你的情况是什么?
-
@skovy,是的,我想在一个地方定义B接口和默认值。
标签: typescript