重命名返回对象的对象键

DrN*_*rNo 5 javascript typescript

塞纳里奥

方法Matter返回一个对象,例如return {content, data}

冲突

该方法的第二次调用(来自节点模块的方法)会覆盖之前从返回中设置的变量。

import matter from 'gray-matter'

const test = () => {
...
   const { content, data } = matter(source1)
   const { content, data } = matter(source2) // this overwrites previous content, data vars
...
}
Run Code Online (Sandbox Code Playgroud)

目标/问题

在不同的命名变量中设置返回值,例如:

const { content2, data2 } = matter(source2) // like so it leads to an compiling error property content2 does not exists on type [...]
Run Code Online (Sandbox Code Playgroud)

那么,如何将返回值分配给类型中命名的不同命名变量呢?

Cer*_*nce 6

只需使用不同的变量名称:

const { content, data } = matter(source1)
const { content: content2, data: data2 } = matter(source2)
Run Code Online (Sandbox Code Playgroud)

或者根本不解构:

const result1 = matter(source1)
const result2 = matter(source2)
Run Code Online (Sandbox Code Playgroud)

或者使用对象数组:

const results = [source1, source2].map(matter);
Run Code Online (Sandbox Code Playgroud)