如何将 jsDoc 与 mobx-state-tree 一起使用?
How can I use jsDoc with mobx-state-tree?
我正在尝试将 jsDoc 用于我的 mobx-state-tree 驱动的应用程序,但它没有按照我想要的方式做出反应。
Visual studio代码没有给我显示相应类型的正确属性:
jsDoc 在重构和保持 js 代码无错误方面提供了巨大的帮助!但是在这种情况下我该如何利用它呢?
我找到了这个,但似乎没有人真正使用它:
https://github.com/Feverqwe/mst-jsdoc-gen
我真的很想知道其他开发者是如何处理这个问题的!
您的项目可能缺少 jsconfig.json
defines it to be a Javascript project to Visual Studio Code。
例如,给定项目树
.
├── jsconfig.json
├── package-lock.json
├── package.json
├── src
│ ├── step.js
│ └── test.js
└── yarn.lock
在jsconfig.json
中定义如下,
{
"compilerOptions": {
"module": "commonjs",
"target": "es6"
},
"include": ["src/**/*"],
"checkJs": true,
"allowSyntheticDefaultImports": true
}
allowSyntheticDefaultImports
配置很重要,因为它允许在项目的 Javascript 模块中未导出的符号的代码提示。
要获得 mobx 状态树模型的类型提示,可以显式记录 typedef
。例如,
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。
问题是您的 jsDoc 不是指类型的实例,而是指类型本身。
试试这个:
/**
* @param {typeof Step.Type} step
*/
async applyStep(step){}
或者这个(正如 docs 的打字稿部分所指出的):
/**
* @param {Instance<typeof Step>} step
*/
async applyStep(step){}
我正在尝试将 jsDoc 用于我的 mobx-state-tree 驱动的应用程序,但它没有按照我想要的方式做出反应。
Visual studio代码没有给我显示相应类型的正确属性:
jsDoc 在重构和保持 js 代码无错误方面提供了巨大的帮助!但是在这种情况下我该如何利用它呢?
我找到了这个,但似乎没有人真正使用它: https://github.com/Feverqwe/mst-jsdoc-gen
我真的很想知道其他开发者是如何处理这个问题的!
您的项目可能缺少 jsconfig.json
defines it to be a Javascript project to Visual Studio Code。
例如,给定项目树
.
├── jsconfig.json
├── package-lock.json
├── package.json
├── src
│ ├── step.js
│ └── test.js
└── yarn.lock
在jsconfig.json
中定义如下,
{
"compilerOptions": {
"module": "commonjs",
"target": "es6"
},
"include": ["src/**/*"],
"checkJs": true,
"allowSyntheticDefaultImports": true
}
allowSyntheticDefaultImports
配置很重要,因为它允许在项目的 Javascript 模块中未导出的符号的代码提示。
要获得 mobx 状态树模型的类型提示,可以显式记录 typedef
。例如,
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。
问题是您的 jsDoc 不是指类型的实例,而是指类型本身。
试试这个:
/**
* @param {typeof Step.Type} step
*/
async applyStep(step){}
或者这个(正如 docs 的打字稿部分所指出的):
/**
* @param {Instance<typeof Step>} step
*/
async applyStep(step){}