typescript - 通过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 和编译器动态定义的属性存在于一个类上吗?
解决方案
据我所知,TypeScript(以及与此相关的 JavaScript)不允许通过添加 jsdoc 注释来使用魔法方法。
查看有关 mixins 的 TypeScript 文档:https ://www.typescriptlang.org/docs/handbook/mixins.html
我的猜测是您应该将 Main 更改为class Main implements TestMixin
.
我希望这有帮助。
推荐阅读
- arrays - “没有提供数组访问的设置方法”——为什么在 Kotlin 中会发生这种情况?
- javascript - 为什么 javascript 在我之前的 html 上运行
- r - tidyverse 和 jsonlite - 将嵌套的 JSON 代码提要转换为单行数据框
- elasticsearch - 使用 gradle 设置基本插件
- mysql - 两个表的LEFT JOIN,SUM,GROUP
- javascript - 自动更正/自动拼写检查和自动更正,无需询问用户
- ios - UIControl 内存泄漏
- python - 捕获但不使用字符串中的字符
- python - 使用 matplotlib 在图例中制作自定义垂直线标记
- javascript - 获取引导模式中动态添加的选择输入的值以显示/隐藏文本输入