• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

azu/babel-plugin-jsdoc-to-assert: Runtime type checking for JSDoc

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

azu/babel-plugin-jsdoc-to-assert

开源软件地址:

https://github.com/azu/babel-plugin-jsdoc-to-assert

开源编程语言:

JavaScript 100.0%

开源软件介绍:

babel-plugin-jsdoc-to-assert Build Status

Babel plugin for jsdoc-to-assert.

Preset version: babel-preset-jsdoc-to-assert: Babel preset for jsdoc-to-assert

This plugin JSDoc(@param and @type) to assertion method for runtime testing.

@param

/**
 * @param {number} param - this is a param.
 * @param {string} b - this is a param.
 * @param {string[]} [c] - this is a param.
 */
function myFunc(param, b, c) {
}

to

/**
 * @param {number} param - this is a param.
 * @param {string} b - this is a param.
 * @param {string[]} [c] - this is a param.
 */
function myFunc(param, b, c) {
  console.assert(typeof param === 'number');
  console.assert(typeof b === 'string');
}

@type

/**
 * @type {string}
 */
const value = "s";

to

/**
 * @type {string}
 */
const value = "s";
console.assert(typeof value === "string");

Installation

npm install babel-plugin-jsdoc-to-assert

Usage

Via .babelrc

{
  "plugins": [
    "jsdoc-to-assert"
  ]
}

In development only:

{
  "presets": [
    "es2015"
  ],
  "env": {
    "development": {
      "plugins": [
        "jsdoc-to-assert"
      ]
    }
  }
}

If build files with NODE_ENV=production, don't convert JSDoc to assert.

"build": "NODE_ENV=production babel src --out-dir lib --source-maps",

Options

  • checkAtParam: boolean
    • Default: true
    • Check typing of @param
  • checkAtType: boolean
    • Default: false
    • Check typing of @type

FAQ

Q. Try to use this, but throw parsing error:

ERROR in ./src/js/framework/Context.js
Module build failed: SyntaxError: Unterminated string constant (3:16)
    at Parser.pp.raise (/Users/azu/.ghq/github.com/azu/svg-feeling/node_modules/babylon/index.js:1378:13)
    at Parser.readString (/Users/azu/.ghq/github.com/azu/svg-feeling/node_modules/babylon/index.js:5402:49)
    at Parser.getTokenFromCode (/Users/azu/.ghq/github.com/azu/svg-feeling/node_modules/babylon/index.js:52
    ....
 @ ./src/index.js 24:15-48

A. It seem to be a bug of babel-plugin-jsdoc-to-assert. Please file issue with your code


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap