当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

variable-type

高性能变量结构校验库
授权协议 MIT
开发语言 JavaScript
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 柳英资
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

variable-type

一个非常简单的(仅 1 kb)高性能的用于做变量结构校验的 JavaScript 模块。

1. 安装

npm i --save variable-type

Then import it.

import VT from 'variable-type'; // ES6
var VT = require('variable-type'); // ES5 with npm

2. API & Types

The unique API is check(variable, type). And the library contains Types below:

  • VT.bool

  • VT.func

  • VT.number

  • VT.string

  • VT.object

  • VT.array

  • VT.any

  • VT.null

  • VT.undefined

  • VT.instanceOf(Class)

  • VT.in(Array)

  • VT.arrayOf(Type)

  • VT.shape(TypeObject)

  • VT.and(TypeArray)

  • VT.or(TypeArray)

  • VT.not(Type)

  • VT.apply(Function)

You can see all the usage in the test cases file.

If more Types are needed, welcome to send a pull request, or put an issue to me.

3. 使用示例

Here is some examples. More you can see in test.js file.

  • Simple usage

VT.check(1992, VT.number);
VT.check('hustcc', VT.string);
VT.check(Math.min, VT.func);
VT.check(true, VT.bool);
VT.check({}, VT.object);
VT.check([1, 2, 3], VT.array);
VT.check(null, VT.null);
VT.check(undefined, VT.undefined);
VT.check(new Date(), VT.instanceOf(Date));
VT.check('hustcc', VT.in(['hustcc', 'hust', 'cc']));
  • And / Or / Not

VT.check('hustcc', VT.not(VT.in(['hustcc', 'cc'])));
VT.check('hustcc', VT.and([
   VT.string
   VT.in(['hustcc', 1992]),
]));
VT.check('hustcc', VT.or([
   VT.number,
   VT.string,
]));
  • Array type.

var arr = ['hello', 'world', 25, new Date(1992, 8, 1)];
 
var types = VT.arrayOf(
  VT.or([
    VT.number,
    VT.string,
    VT.instanceOf(Date)
  ])
);

VT.check(arr, types); // will get true.
  • Object type.

var obj = {
  name: 'hustcc',
  boy: true,
  birthday: new Date(1992, 8, 1)
};
 
var types = VT.shape({
  name: VT.string,
  boy: VT.bool,
  birthday: VT.instanceOf(Date)
});

VT.check(obj, types); // will get true.
  • Complex example.

// The only API `check`.
VT.check({
  a: true,
  b: 1,
  c: 'str',
  d: function() {},
  e: new Date(),
  f: '1',
  g: {
    h: {
      i: [
        '1',
        2,
        true,
        {
          j: function() {}
        }
      ]
    }
  }
}, VT.shape({
  a: VT.bool,
  b: VT.number,
  c: VT.string,
  d: VT.func,
  e: VT.instanceOf(Date),
  f: VT.in([1, '1']),
  g: VT.shape({
    h: VT.or([
      VT.shape({
        i: VT.arrayOf(
          VT.or([
            VT.number,
            VT.string,
            VT.bool,
            VT.shape({
              j: VT.func
            })
          ])
        )
      })
    ])
  })
}); // Then will get true.

4. Test & Perf

npm i

npm run test

npm run perf

[OPS] variable-type / prop-types = 2.495

协议

ISC@hustcc.

 相关资料
  • 描述 (Description) 方法type()返回传递的变量的类型。 如果传递的变量是字典,那么它将返回字典类型。 语法 (Syntax) 以下是type()方法的语法 - type(dict) 参数 (Parameters) dict - 这是字典。 返回值 (Return Value) 此方法返回传递的变量的类型。 例子 (Example) 以下示例显示了type()方法的用法。 #!/

  • 问题内容: 编写之间是否存在性能差异(如果有) 与 另外,如果我们在参数签名中进行结构分解,会获得或失去任何性能?参见example3 我认为在这种情况下example3是编写函数的最佳方法? 功能性反应组件示例: 问题答案: 由于您的代码将被编译/缩小,因此不会有任何性能问题。 注意,使用React,您的代码将被转译,其作用与 在babel编译器在线测试仪上检查结果

  • 通过向规则参数添加可变部分,可以动态构建URL。 此变量部分标记为《variable-name》 。 它作为关键字参数传递给与规则关联的函数。 在以下示例中, route()装饰器的rule参数包含附加到URL '/hello' 《name》变量部分。 因此,如果在浏览器中输入http://localhost:5000/hello/wenjiangs作为URL ,则'TutorialPoint'将

  • 有时,当您想要一个函数时,您可能会遇到这种情况,该函数可以使用可变数量的参数,即参数,而不是预定义数量的参数。 C编程语言为这种情况提供了解决方案,您可以根据需要定义一个可以接受可变数量参数的函数。 以下示例显示了此类函数的定义。 int func(int, ... ) { . . . } int main() { func(1, 2, 3); func(1, 2,

  • 介绍 JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢?我们引用这些对象的时候究竟发生了什么? 原始发布:Dmitry A. Soshnikov 发布时间:2009-06-27 俄文地址:http://dmitrysoshnikov.com/ecmascript/ru-chapter-2-variable-objec

  • 本文向大家介绍TENSORFLOW变量作用域(VARIABLE SCOPE),包括了TENSORFLOW变量作用域(VARIABLE SCOPE)的使用技巧和注意事项,需要的朋友参考一下 举例说明 TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。 官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们希望所有图片都共