首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将jsDoc与mobx-state-tree一起使用?

如何将jsDoc与mobx-state-tree一起使用?
EN

Stack Overflow用户
提问于 2019-11-07 23:31:30
回答 2查看 199关注 0票数 1

我正尝试在我的mobx-state-tree应用程序中使用jsDoc,但是它没有以我想要的方式做出反应。

Visual studio代码没有显示相应类型的正确属性:

当涉及到重构和保持js代码无bug时,jsDoc是一个巨大的帮助!但是在这种情况下,我该如何利用它呢?

我找到了这个,但似乎没有人真正使用它:https://github.com/Feverqwe/mst-jsdoc-gen

我真的想知道其他开发者是如何处理这个问题的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-20 17:42:15

问题是您的jsDoc引用的不是类型的实例,而是类型本身。

试着这样做:

代码语言:javascript
复制
/**
 * @param {typeof Step.Type} step
 */
async applyStep(step){}

或者这样(正如docs的typescript部分所指出的那样):

代码语言:javascript
复制
/**
 * @param {Instance<typeof Step>} step
 */
async applyStep(step){}
票数 1
EN

Stack Overflow用户

发布于 2019-11-16 21:15:04

您的项目可能缺少defines it to be a Javascript project to Visual Studio Codejsconfig.json

例如,给定项目树

代码语言:javascript
复制
.
├── jsconfig.json
├── package-lock.json
├── package.json
├── src
│   ├── step.js
│   └── test.js
└── yarn.lock

jsconfig.json中定义如下,

代码语言:javascript
复制
{
    "compilerOptions": {
      "module": "commonjs",
      "target": "es6"
    },
    "include": ["src/**/*"],
    "checkJs": true,
    "allowSyntheticDefaultImports": true
}

allowSyntheticDefaultImports配置非常重要,因为它允许代码提示未在项目的Javascript模块中导出的符号。

要获取mobx状态树模型的类型提示,可以显式地记录typedef。例如,

代码语言:javascript
复制
import { types } from "mobx-state-tree"


const Step = types.model({
    level: types.number,
    strength: types.number
})

 /**
 * @typedef Step
 * @property {Number} level
 * @property {Number} strength
 */

我认为可以更进一步,编写一个钩子,为模型动态生成这个typedef文档。

我还不知道有什么工具可以立刻做到这一点。

您可以派生您共享的工具,更新它,然后在模型更新时使用configure a custom task in Visual Studio Code to run it

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58752040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档