Object x object
- Object x object
No TypeScript, a diferença entre Object e object é sutil, mas importante, especialmente quando se trata de tipagem e práticas de programação seguras. Aqui está um detalhamento das diferenças:
Object:Objectrefere-se ao tipo de construtor de todos os objetos no JavaScript. Isso inclui funções, arrays, e qualquer outra coisa que possa ser criada com{}ounew Object().- Quando você usa
Objectcomo um tipo em TypeScript, você está basicamente dizendo que o valor pode ser qualquer coisa que não seja um tipo primitivo (números, strings, booleans, etc.). No entanto, isso é bastante amplo e raramente recomendado porque não fornece muita segurança de tipo.
object:- O tipo
objecté mais específico do queObjecte é usado para indicar que algo é um objeto não primitivo. Em outras palavras, o valor é algo que tem a forma de um objeto como{}, mas não números, strings, ou booleans. - Esse tipo exclui os valores primitivos e também exclui funções e arrays, ao contrário do tipo
Object.
- O tipo
Exemplo prático:
function logObject(obj: Object) {
console.log(obj);
}
function logNonPrimitive(obj: object) {
console.log(obj);
}
logObject(123); // Sem erro, porque 123 é um objeto em JavaScript
logNonPrimitive(123); // Erro, porque 123 é um primitivo e não um objeto `{}`
logObject(() => {}); // Sem erro, funções são objetos
logNonPrimitive(() => {}); // Erro, não aceita funções, mesmo que sejam objetos
Quando usar cada um?
- Use
objectquando você quiser garantir que uma função ou método espera receber algo que seja estritamente um objeto no sentido de um conjunto de pares chave-valor, e você quer evitar primitivos, funções, e arrays. - Evite usar
Objectsempre que possível, pois ele é muito genérico e diminui a eficácia da tipagem forte do TypeScript. Se precisar de um tipo que aceite qualquer coisa, considere usaranyou, preferencialmente,unknowne realizar verificações de tipo apropriadas.
Portanto, a escolha entre Object e object pode afetar significativamente a segurança e clareza do seu código TypeScript.
Methods of Object
is()
The Object.is() method was introduced in ECMAScript 2015 (ES6) as a way to determine whether two values are exactly the same. It offers more precise comparisons in certain scenarios where the existing == (loose equality) and === (strict equality) operators fall short.
Object.is(value1, value2);
This method returns true if the two values are considered the same, and false otherwise.