将类型分配给也重命名的析构变量

时间:2018-05-30 20:11:11

标签: typescript typescript2.0

如何在分配新变量名设置类型时使用解构赋值?这方面的一个例子是:

const {
  Script: script, // string
  EstimatedDuration: estimated_duration, // number
  ActualDuration: actual_duration, // number
} = response.data[0];

我的第一直觉是将<string>as string添加到RHS,但这不起作用。尝试其他变体也失败了。

这是可能的,或者我对这些变量的类型检查是SOL吗?我想使用解构而不是const script: string = response.data[0].Script和类似的。

1 个答案:

答案 0 :(得分:1)

如果您愿意将所有内容输入两次,则可以这样做。

// replace with your response object above
declare const responseObject: {
    Script: any,
    EstimatedDuration: any,
    ActualDuration: any,
};

const {
    Script: script,
    EstimatedDuration: estimated_duration,
    ActualDuration: actual_duration,
}: { 
    Script: string, 
    EstimatedDuration: number, 
    ActualDuration: number 
} = responseObject;

console.log(script, estimated_duration, actual_duration);

此时虽然您只是编写实际的类型声明,但您也可以将该类型设置在某个地方interface以下,以便于访问。