ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 使用JSDoc的Webstorm接口实现警告

2021-02-02 15:33:18  阅读:207  来源: 互联网

标签:MyImplementation function exports javascript Webstorm JSDoc IInterface 警告


我是JSDoc的新手,我正在尝试Webstorm,所以我也是webstorm的新手.

 

我一方面用这种方式声明了一个接口:

 

/**  @interface */
function IInterface(){}
IInterface.prototype.myMethod = function(){};

另一方面,我正在开发一个模块,我正在实现这个接口:

 

window.exports.MyImplementation =  (function(){
    "use strict";

    /**
     *
     * @constructor
     * @implements {IInterface}
     */
    function MyImplementation(){}
    MyImplementation.prototype.myMethod = function(){
        // my implementation here
    };

    return MyImplementation;
})();

我遇到的问题是显然无法识别实现:

但是,如果我删除window.exports.MyImplementation分配或返回语句,则不再有警告……

..但我确实希望从我的模块返回并存储我的类型!

我有什么遗漏或做错了吗?……

编辑:

只是为了给我的问题带来更多困惑,
我正在考虑使用“完整注释”界面声明(如果有可能,我在这里试验……):

…但在这种情况下,您可以注意到“I”符号已从左侧消失,如果方法未实现,我没有任何警告.
但是类型IInterface被识别.

编辑:
我想我在尝试jsDoc的其他东西时只是理解了一些东西.
抛出警告是因为对window.exports.MyImplementation进行了实现检查.但是在代码中没有直接赋值实现此对象.
这就是我删除return语句或“exports.MyImplementation”赋值时禁用警告的原因.

..因此,不确定这可能被视为一个错误,这可能是我用于我的模块的模式与WebStorm预期的模式不匹配,也可能是JSdoc本身……
如果有JSDoc和Webstorm经验的人可以确认…..

另一个编辑:
(我认为理解JSDoc的重要一步)

注释已经移动到目标字段和… tadaaa(注意“I”仍然在这里表明接口确实正在实现).

我的解释:
可能有一个逻辑……但老实说我真的不知道它是否相关:因为文档化的字段将在最后的“exports.MyImplementation”中导出,这很明显注释更多这里比在私人机柜中有用. WebStorm已检测到导出为“exports.MyImplementation”,因此正在等待其上的文档…

是否有意义?…

另一个编辑(再次)
调查,调查.

我找到了一个完全不同的解决方案,允许文档,完成,验证和没有警告,这似乎是一个更好的模块导出解决方案:

标签:MyImplementation,function,exports,javascript,Webstorm,JSDoc,IInterface,警告
来源: https://www.cnblogs.com/heihei1990/p/14362241.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有