首页 > 解决方案 > 通过jsdoc在typescript类中定义新方法

问题描述

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

例如,如果我有 mixin

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

申请“主”类并尝试使用它:

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

应用 mixins 后,webpacks 停止并出现错误:“Property 'test' does not exist on type”

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

几天前我在某个地方找到了一些链接,如果我没记错的话

/**
 * @function Main~test
 */

那时它似乎可以工作(至少对于我的 IDE,我目前没有尝试构建代码),但是当我尝试知道它不起作用(对于 webpack 和我的 IDE 都不起作用)并且我不能回想一下我第一次发现它的地方。

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

标签: typescriptjsdoc

解决方案


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

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

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

我希望这有帮助。


推荐阅读