Как в JS заранее проверить входящие типы параметров, то что сейчас есть в PHP?

// php
function data(int $number, string $string, bool $status) {}

// JS, здесь нужно проверить типы параметров
function data(number, str, status) {}

Если типы не соответствуют, то выдавать ошибку и не выполнять функцию


Ответы (1 шт):

Автор решения: Arnokay

В чистом JS валидировать входящие данные как на примере не получится.


Если вам нужно понимать типы данных, с которыми вы работаете во время разработки, то стоит посмотреть в сторону TypeScript.


Если вам нужна валидация для вывода ошибок при неправильно передаваемых данных, то стоит посмотреть в сторону библиотек для валидации схем, например:

Пример подобного кода на joi:

function data({ number, str, status }) {}

const schema = joi.object({
  number: joi.number().required(),
  str: joi.string().required(),
  status: joi.boolean().required(),
});

const request = {
  number: 1,
  str: 'str',
  status: true,
};

// синхронно

const { value, error } = schema.validate(request);

if (!error) {
  data(value);
} else {
  // обработка ошибки
}

// асинхронно

try {
 const value = await schema.validateAsync(request);
 data(value);
} catch (error) {
  // обработка ошибки
}
→ Ссылка