1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hustcc-variable-type

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Переведённый текст:

Библиотека JavaScript с высокой производительностью (менее 1 КБ), проверяющая тип переменной и подобных объектов.

Простая библиотека JavaScript для проверки структуры переменных. Вдохновлена prop-types.

Версия Статус сборки Покрытие кода Скачиваний
Ver Build Status Coverage Status npm download

1. Установка

npm i --save variable-type

Затем импортируйте её.

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

2. API & Типы

Прежде чем использовать библиотеку для проверки переменных, необходимо создать свои типы. Библиотека содержит следующие типы:

  • VT.bool
  • VT.func
  • VT.number
  • VT.string
  • VT.object
  • VT.array
  • VT.any
  • VT.null
  • VT.undefined
  • VT.instanceOf(Class)
  • VT.typeOf(String)
  • VT.in(Array)
  • VT.arrayOf(Type)
  • VT.shape(TypeObject)
  • VT.and(TypeArray)
  • VT.or(TypeArray)
  • VT.not(Type)
  • VT.apply(Function)

Тип имеет два API:

  • check(value)
  • optional(): преобразует тип в необязательный.

Все варианты использования можно увидеть в файле [test.js].

Если вам нужно больше типов, вы можете отправить запрос на вытягивание или создать задачу для меня.

3. Примеры использования

Вот несколько примеров. Больше можно увидеть в файле [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.

4. Тестирование и производительность

npm install

npm run test

npm run perf

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

Лицензия

ISC@hustcc.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Библиотека для проверки типов переменных и подобных объектов размером 1 Кб. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hustcc-variable-type.git
git@api.gitlife.ru:oschina-mirror/hustcc-variable-type.git
oschina-mirror
hustcc-variable-type
hustcc-variable-type
master