在TypeScript中,我可以指定使用对象剩余/扩展分配功能创建的局部变量的类型吗?问题是Type6通常使用的ES6语法obj: Type
来指定局部变量的类型,在ES6剩余/扩展定义中使用ES6语法来引用要定义的局部变量的名称,如果name(不同于对象的属性名称。那么,如何让TS知道我想要该变量的类型呢?
例如,假定此代码:
interface ABCD {
a: string,
b: number,
c: string,
d: number,
};
interface CD {
c: string,
d: number,
};
const abcd: ABCD = {a: 'hello', b: 10, c: 'world', d: 20};
const {a, b, ...cd} = abcd;
现在,如果我想指定变量cd
的类型为CD
,我该怎么做?下面用于类型说明的常规TS语法将定义一个新的局部变量CD
。
const {a, b, ...cd: CD} = abcd;