"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > As diferenças entre &#{}&#, &#{}&# e &#objeto&# no TypeScript

As diferenças entre &#{}&#, &#{}&# e &#objeto&# no TypeScript

Publicado em 30/07/2024
Navegar:564

No TypeScript, quando queremos definir um tipo de objeto, existem várias opções concisas, como 'Object', '{}' e 'object'. Quais são as diferenças entre eles?

Objeto (maiúsculo)

Object (maiúsculas) descreve propriedades comuns a todos os objetos JavaScipt. Ele é definido no arquivo lib.es5.d.ts que vem com a biblioteca TypeScript.

The Differences Between

Como você pode ver, inclui algumas propriedades comuns como toString(), valueOf() e assim por diante.

Porque enfatiza apenas as propriedades que são comuns aos objetos JavaScript. Assim, você pode atribuir objetos boxable como string, boolean, number, bigint, símbolo a ele, mas não o contrário.

The Differences Between

{}

{} descreve um objeto que não possui membros próprios, o que significa que o TypeScript irá reclamar se você tentar acessar seus membros de propriedade:

The Differences Between

No exemplo de código acima, podemos ver que {} e Object (maiúsculas) têm os mesmos recursos. Ou seja, ele só pode acessar as propriedades que são comuns (mesmo que a lógica do código JavaScript esteja correta), todos os objetos boxable podem ser atribuídos a ele, etc.

Isso ocorre porque o tipo {} pode acessar essas propriedades comuns por meio da cadeia de protótipos e também não possui propriedades próprias. Portanto, ele se comporta da mesma forma que o tipo Object (maiúsculo). Mas eles representam conceitos diferentes.

objeto (em minúsculas)

objeto (em minúsculas) significa qualquer tipo não primitivo, que é expresso em código como este:

type PrimitiveType =
  | undefined
  | null
  | string
  | number
  | boolean
  | bigint
  | symbol;

type NonPrimitiveType = object;

Isso significa que todos os tipos não primitivos não podem ser atribuídos a ele e vice-versa.

The Differences Between

Lanche: Record

No código-fonte de muitas bibliotecas comuns, podemos ver Record para representar tipos não primitivos. Tem o mesmo efeito que o objeto (em minúsculas), mas é mais semântico.


Se você achar meu conteúdo útil, por favor considere se inscrever. Eu envio um _ boletim informativo semanal todos os domingos _ com as últimas atualizações de desenvolvimento web. Obrigado por seu apoio!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/zacharylee/the-differences-between-object-and-object-in-typescript-f6f?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3