【发布时间】:2021-03-26 22:15:33
【问题描述】:
假设我们有两个函数
/**
* @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 上找到一些东西,但没有运气。
谢谢
【问题讨论】:
-
我在这里没有看到问题,你破坏了 request0 的值,这是一个包含这些道具的已解决承诺
-
这取决于您的编辑器的 JSDoc 支持级别。像 TypeScript 这样的静态类型检查器也会捕获它。
-
@asafel request0 返回 id 和属性,并通过 jsdoc 注释记录。它不返回 foo 属性
-
@str 是的,一种打字稿,但带有 jsdoc。它可以用于访问普通对象的属性,但它不适用于解构大小写
-
marketplace.visualstudio.com/… - 有一个 VSCode 插件,会高亮显示。
标签: javascript eslint jsdoc ecmascript-2020