解构对象时重命名和添加类型

bew*_*s99 4 typescript

payload = { 
  logo: // type is Blob
  name: // type is string
}

function save({ logo, name }) {
 //
}
Run Code Online (Sandbox Code Playgroud)

当使用有效负载调用保存时

save(payload)
Run Code Online (Sandbox Code Playgroud)

我需要将“logo”重命名为“file”,并且需要为两个字段定义类型,是否可以在解构对象时同时重命名和添加类型?

Cer*_*nce 6

与普通的 Javascript 解构一样,要放入新的变量名称,请在要重命名的属性后面放置一个冒号,新标识符位于右侧:

logo: file
Run Code Online (Sandbox Code Playgroud)

然后,您需要设置传递的整个对象的类型,这是通过:在参数后面放置来完成的:

function save({ logo: file, name }: { logo: Blob; name: string; }) {
Run Code Online (Sandbox Code Playgroud)

看起来有点重复,但我认为没有更好的方法。