小编Cha*_*IER的帖子

声明类的方法的附加成员

我用一个typescript装饰器装饰了一个方法,在方法中添加了一个成员:

export class MyClass {
    @AddMyMember()
    public myMethod(param1:string) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我应该能够这样使用它:

const myClassInstance = new MyClass();
myClassInstance.myMethod.myMember(); // error of course here, as myMember has not been declared yet...
Run Code Online (Sandbox Code Playgroud)

但我找不到有效声明myMember的方法:

export declare interface MyClass {
// Something great here maybe?....
}
Run Code Online (Sandbox Code Playgroud)

strong-typing typescript typescript-typings

8
推荐指数
1
解决办法
165
查看次数

使用JSDoc的Webstorm接口实现警告

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

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

/**  @interface */
function IInterface(){}
IInterface.prototype.myMethod = function(){};
Run Code Online (Sandbox Code Playgroud)

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

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

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

    return MyImplementation;
})();
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是显然无法识别实现: 未实施警告屏幕截图

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

在此输入图像描述

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

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

编辑:

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

在此输入图像描述

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

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

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

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

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

在此输入图像描述

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

是否有意义?...

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

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

javascript jsdoc webstorm

7
推荐指数
1
解决办法
854
查看次数

c ++单例尝试:未解析的外部符号

我是ac#developctor试图做c ++的事情,我无法理解这里的问题:

namespace myNamespace
{
    class Application
    {
    private:
        Application(void);
        ~Application(void);

        // Not copyable
        Application(const Application&);
        Application& operator= (const Application&);

        static Application _instance; 

        [...]

    public:
        static Application& current(void);
    };
}
Run Code Online (Sandbox Code Playgroud)

(这应该是单身......)

这会导致错误:" 错误LNK2001:未解析的外部符号"private:static class myNamespace :: Application myNamespace :: Application :: _ instance"(?_ instance @ Application @ myNamespace @@ 0V12 @ A) "

是因为我正在使用我在类声明中声明的类吗?

非常感谢!

c++ singleton

4
推荐指数
1
解决办法
4603
查看次数