验证对象解构

validate object destructuring

假设我们有两个函数

/**
 * @typedef MyResponse
 * @property {Number} id - my awesome id
 * @property {Array<Number>} attributes - list of ids
 * */

/**
 * @return {Promise<MyResponse>}
 * */
function request0() {
  return Promise.resolve({id: 1, attributes: [1,2,3]});
}

(async function () {
  const { foo } = await request0(); // but it doesn't return foo, it returns id and attributes
  console.log(foo);
})();

是否可以以某种方式突出显示此类错误?我试图在 eslint 上找到一些东西,但没有运气。

谢谢

您可以在文件开头简单地添加 // @ts-check 而无需 eslint。
然后,你可以看到你的 foo 有红线。
但是,你需要用这种方式将它添加到每个文件中。
Type checking JavaScript 和 vscode 中的更多详细信息。