【发布时间】:2019-02-04 15:55:20
【问题描述】:
我试图使用 rest 运算符从 Object 中删除一个属性,但不知道如何在新 Object 上强制类型。
interface Ab {
a: string;
b: number;
}
interface Bc {
b: number;
c: boolean | undefined;
}
const ab: Ab = { a: 'a', b: 1};
const {a, ...bc} = {...ab, c: true};
我知道 bc 现在有一个类型
{
b: number;
c: boolean;
}
有没有办法强制 bc 明确地属于 Bc 类型?
【问题讨论】:
-
您想这样做有什么特别的原因吗?两种类型相互兼容,因为它们具有相同的结构并且 Typescript 使用结构类型
-
当类型更复杂时,它主要用于开发人员的理智。它们在技术上是相同的,但知道确切的类型是什么会很有帮助。在我的例子中,有些类型是
string | undefined,所以将它作为string将很难为未来的开发人员维护。
标签: typescript interface spread-syntax