Библиотека JavaScript с высокой производительностью (менее 1 КБ), проверяющая тип переменной и подобных объектов.
Простая библиотека JavaScript для проверки структуры переменных. Вдохновлена prop-types.
Версия | Статус сборки | Покрытие кода | Скачиваний |
---|---|---|---|
npm i --save variable-type
Затем импортируйте её.
import VT from 'variable-type'; // ES6
var VT = require('variable-type'); // ES5 with npm
Прежде чем использовать библиотеку для проверки переменных, необходимо создать свои типы. Библиотека содержит следующие типы:
Тип имеет два API:
Все варианты использования можно увидеть в файле [test.js].
Если вам нужно больше типов, вы можете отправить запрос на вытягивание или создать задачу для меня.
Вот несколько примеров. Больше можно увидеть в файле [test.js]:
Простой пример использования:
VT.number.check(1992);
VT.string.check('hustcc');
VT.func.check(Math.min);
VT.bool.check(true);
VT.object.check({});
VT.array.check([1, 2, 3]);
VT.null.check(null);
VT.undefined.check(undefined);
VT.instanceOf(Date).check(new Date());
VT.in(['hustcc', 'hust', 'cc']).check('hustcc');
И / Или / Не:
VT.not(VT.in(['hustcc', 'cc'])).check('hustcc');
VT.and([
VT.string
VT.in(['hustcc', 1992]),
]).check('hustcc');
VT.or([
VT.number,
VT.string,
]).check('hustcc');
Тип массива:
var arr = ['hello', 'world', 25, new Date(1992, 8, 1)];
var types = VT.arrayOf(
VT.or([
VT.number,
VT.string,
VT.instanceOf(Date)
])
);
types.check(arr); // будет true.
Тип объекта:
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)
});
types.check(obj); // будет true.
Сложный пример:
// Единственный API `check`.
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
})
])
)
})
])
})
}).check({
a: true,
b: 1,
c: 'str',
d: function() {},
e: new Date(),
f: '1',
g: {
h: {
i: [
'1',
2,
true,
{
j: function() {}
}
]
}
}
}); // Тогда будет true.
Необязательный тип:
VT.shape({
name: VT.string,
birthday: VT.string,
sex: VT.string.optional()
}).check({
name: 'hustcc',
birthday: '1992-08-01'
}); // тогда будет true.
npm install
npm run test
npm run perf
[OPS] variable-type / prop-types = 5.033
ISC@hustcc.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )