我可以指定通过TypeScript剩余/扩展分配定义的新局部变量的类型吗?

时间:2018-09-30 21:26:30

标签: typescript spread-syntax

在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;

0 个答案:

没有答案