Dominando os tipos de verificação de dados em Javascript/TypeScript

Mundo JavaScript
3 min readMar 26, 2020

Este artigo ajudará você a verificar se uma variável ou parâmetro é uma sequência de caracteres, número, matriz, objeto, função, nulo, indefinido, booleano, regexp, erro, data, símbolo em JavaScript

Como você verifica se uma variável é uma String em Javascript

Uma string é sempre uma string, então essa é fácil. Exceto se chamado com new (new String) o typeof retornará “object”., portanto, para incluir também as strings podemos utilizar o instanceof.

function isString (value) {
return typeof value === 'string' || value instanceof String;
}

Como você verifica se uma variável é um número em Javascript

typeof number, mais coisas do que apenas um número comum poderá retornará “número” como NaN e Infinity. Para saber se um valor realmente é um número, a função isFinitetambém é necessária.

function isNumber (value) {
return typeof value === 'number' && isFinite(value);
}

Como você verifica se uma variável é uma matriz em Javascript

Em javascript, matrizes não são matrizes verdadeiras

Em javascript, matrizes não são verdadeiras, como em java e em outros idiomas. Na verdade, eles são objetos, portanto typeof retornará “object” para eles. Para saber se algo realmente é um array, seu construtor pode ser comparado ao Array.

function isArray (value) {
return value && typeof value === 'object' && value.constructor === Array;
}
Array.isArray(value);

Como você verifica se uma variável é uma função em Javascript

Funções são funções, então aqui apenas typeof é suficiente.

function isFunction (value) {
return typeof value === 'function';
}

Como você verifica se uma variável é um objeto em Javascript

Muitas coisas são objetos em javascript. Para saber se um valor é um objeto que pode ter propriedades e ser repetido, seu construtor pode ser comparado a Object. Ele não funciona para objetos criados a partir de classes, então o operador instanceof pode ser usado.

function isObject (value) {
return value && typeof value === 'object' && value.constructor === Object;
}

Como você verifica se uma variável é nula e indefinida em Javascript

Na maioria das vezes, você não precisa verificar explicitamente se o valor é nulo ou indefinido, pois ambos são valores falsos. No entanto se precisar pode fazer da seguinte forma.

// Verifica se o valor é nulo
function isNull (value) {
return value === null;
}
// Verifica se o valor é undefined
function isUndefined (value) {
return typeof value === 'undefined';
}

Como você verifica se uma variável é booleana em Javascript

Para os booleanos, typeof é suficiente, pois retorna “boolean” para true e false.

function isBoolean (value) {
return typeof value === 'boolean';
}

Como você verifica se uma variável é um RegExp em Javascript

RegExp são objetos, portanto, a única coisa necessária para verificar é se o construtor é RegExp.

function isRegExp (value) {
return value && typeof value === 'object' && value.constructor === RegExp;
}

Como você verifica se uma variável é um erro em Javascript

Erros em javascript são os mesmos que “exceções” em muitas outras linguagens de programação. Eles vêm em algumas formas diferentes, como, por exemplo, Error, TypeError e RangeError. Uma instrução instanceof é suficiente para todos, mas apenas para ter certeza, também verificamos a propriedade “message” que os erros possuem.

// Returns if value is an error object
function isError (value) {
return value instanceof Error && typeof value.message !== 'undefined';
}

Como você verifica se uma variável é uma data em Javascript

Data não é realmente um tipo de dados em Javascript. Mas, para saber se algo é um objeto Date, pode ser verificado com instanceof.

function isDate (value) {
return value instanceof Date;
}

Como você verifica se uma variável é um símbolo em Javascript

No ES6, o novo símbolo de tipo de dados foi adicionado. O suficiente typeof retorna “símbolo” para ele, para que não seja necessária mais lógica.

function isSymbol (value) {
return typeof value === 'symbol';
}

Para fecharmos, que tal criar uma função que retorna um objeto avaliando o dado informado na função.

Como ficaria em TypeScript

--

--