通过jsdoc在typescript类中定义新方法

问题描述 投票:1回答:1

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

例如,如果我的我有混合

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

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

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

应用mixins后,webpacks停止并显示错误:“属性'测试'在类型上不存在”

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

几天前,我找到了某个地方的东西,如果我没记错的话

/**
 * @function Main~test
 */

并且当时它似乎工作(至少我的IDE,我现在没有尝试构建代码),但是当我尝试知道它不起作用(既不用于webpack也不用于我的IDE)而且我不能回忆起我第一次发现它的地方。

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

typescript jsdoc
1个回答
0
投票

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

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

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

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.