通过jsdoc

时间:2019-04-24 15:47:20

标签: typescript jsdoc

我正在尝试在打字稿中使用“ mixins”设计模式。问题是webpack不会翻译源代码,因为我使用的是在mixins中而不是在主类中声明的方法。

例如,如果我有混音

class TestMixin {
    test(): void {
        console.log('test');
    }
}

应用“ Main”类并尝试使用它:

const main = new Main();
main.test();

应用混合包后,Webpack停止并显示错误: “类型“不存在属性'测试'

我知道在PHP中,您使用phpdoc块定义了不存在的功能或方法(并且将调用魔术方法),我想也许也可以使用JSdoc在TYpescript中完成。

几天前我在某处发现了一些链接,如果我没记错的话

/**
 * @function Main~test
 */

,那时它似乎可以工作(至少对于我的IDE而言,我当时没有尝试构建代码),但是当我尝试知道它不起作用时(对于webpack和我的IDE都没有),我不能记得我第一次找到它的地方。

有人知道如何告诉IDE和编译器类中存在动态定义的属性吗?

1 个答案:

答案 0 :(得分:0)

据我所知,TypeScript(以及与此相关的JavaScript)不允许通过添加jsdoc注释来实现魔术方法。

看看有关mixin的TypeScript文档:https://www.typescriptlang.org/docs/handbook/mixins.html

我的猜测是您应该将Main更改为class Main implements TestMixin

我希望这会有所帮助。