- 授权协议: MIT
- 开发语言: JavaScript
- 操作系统: 跨平台
- 软件首页: https://gitee.com/hustcc/variable-type
- 软件文档: https://gitee.com/hustcc/variable-type
软件介绍
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 npm2. 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,
]));Arraytype.
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.
Objecttype.
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.Complexexample.
// 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.
算法分析导论(第2版)(英文版)
[美]Robert Sedgewick(罗伯特•塞奇威克)、[美]Philippe Flajolet(菲利普•弗拉若莱) / 电子工业出版社 / 2015-6 / 128.00元
《算法分析导论(第2版)(英文版)》全面介绍了算法的数学分析中所涉及的主要技术。涵盖的内容来自经典的数学课题(包括离散数学、初等实分析、组合数学),以及经典的计算机科学课题(包括算法和数据结构)。《算法分析导论(第2版)(英文版)》的重点是“平均情况”或“概率性”分析,书中也论述了“最差情况”或“复杂性”分析所需的基本数学工具。 《算法分析导论(第2版)(英文版)》第 1 版为行业内的经典著......一起来看看 《算法分析导论(第2版)(英文版)》 这本书的介绍吧!
