一个非常简单的(仅 1 kb)高性能的用于做变量结构校验的 JavaScript 模块。
npm i --save variable-type
Then import it.
import VT from 'variable-type'; // ES6 var VT = require('variable-type'); // ES5 with npm
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.
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.
npm i npm run test npm run perf
[OPS] variable-type / prop-types = 2.495
ISC@hustcc.
gcc 不允许在文件域定义变长数组
项目背景: 前端使用post方式请求,data类型为json数据类型,后台使用@RequestBody List list接受参数,然后报错 Cannot generate variable name for non-typed Collection parameter type 后台代码: @RequestMapping(value = "/method", method = Reques
warning: non-variable type argument Int in type pattern scala.collection.mutable.WrappedArray[Int] is unchecked since it is eliminated by erasure 问题: scala> indexes.rdd.foreach{ | c
scala> suppdata res91: Array[Any] = Array((Set(5),1.0), (Set(3),1.0)) scala> suppdata.map(_ match{case a:Tuple2[Any,Any] => a._1}) res92: Array[Any] = Array(Set(5), Set(3)) scala> suppdata.map(_ mat
这个问题可能是因为两种情况造成的,请根据不同情况排除不同方法 原因: ThinkPHP5中,post提交数据不能提交数组数据,因为ThinkPHP5不能用post去接收数组{‘data’:[1,2,3,4,5]}这种数据,在ThinkPHP5通过Request的post方法取获取时,post方法不能分辨它是否是数组。 前端需要返回的数据,并不是array。 解决方式: 原因一:上传的数据里面有数组
在学习过程中写了一个简单83编码器,代码如下 module code8_3(i,y); input[7:0] i; output[2:0] y; always@(i) begin case(i[7:0]) 8'b00000001:y[2:0]=3'b000; 8'b00000010:y[2:0]=3'b001; 8'b00000100:y[2:0]=3'b010; 8'b0
问题描述 写自定义.js文件的时候 使用$.getJson() 报错Unresolved variable or type $ 解决 在最外层添加代码如下(前提是自己已经引入了jQuery的js文件了) (function ($) { /**里面加入自定义的脚本代码**/ })(window.jQuery)
在项目根目录的uni.scss中引入此文件时。 先引用一下颜色文件 @import "uview-ui/theme.scss"; @import "uview-ui/index.scss";
描述 (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,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们希望所有图片都共