我正在尝试在打字稿中使用“ 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和编译器类中存在动态定义的属性吗?
答案 0 :(得分:0)
据我所知,TypeScript(以及与此相关的JavaScript)不允许通过添加jsdoc注释来实现魔术方法。
看看有关mixin的TypeScript文档:https://www.typescriptlang.org/docs/handbook/mixins.html
我的猜测是您应该将Main更改为class Main implements TestMixin
。
我希望这会有所帮助。