typescript - traductor - ''desconocido'' vs. ''cualquiera''
traductor de frases en ingles a español gratis (2)
La diferencia entre desconocido y cualquiera se describe como:
Al igual que
any
, cualquier valor es asignable aunknown
; sin embargo, a diferencia deany
, no puede acceder a ninguna propiedad en valores con el tipounknown
, ni puede llamarlos / construirlos. Además, los valores de tipounknown
solo pueden asignarse aunknown
oany
.
Para responder a su pregunta de cuándo debe usar
unknown
sobre
any
:
Esto es útil para las API que desean indicar "esto puede ser cualquier valor, por lo que debe realizar algún tipo de comprobación antes de usarlo". Esto obliga a los usuarios a introspeccionar con seguridad los valores devueltos.
Eche un vistazo al
anuncio
de
TypeScript 3.0
para ver ejemplos de verificación de tipo de una variable de tipo
unknown
y una explicación más detallada.
TypeScript 3.0 introduce
unknown
tipo
unknown
, según su wiki:
desconocido es ahora un nombre de tipo reservado, ya que ahora es un tipo incorporado. Dependiendo de su uso de desconocido, es posible que desee eliminar la declaración por completo (favoreciendo el tipo desconocido recién introducido), o cambiar su nombre a otro.
¿Cuál es la diferencia entre
unknown
y
any
?
¿Cuándo debemos usar
unknown
sobre
any
?
Puedes leer más sobre
unknown
en el
anuncio de
PR
o
RC
, pero la esencia de esto es:
[..] desconocido, que es la contraparte de tipo seguro de cualquiera. Cualquier cosa es asignable a lo desconocido, pero lo desconocido no se puede asignar a nada más que a sí mismo y a cualquier cosa sin una afirmación de tipo o un flujo de control basado en el estrechamiento. Del mismo modo, no se permiten operaciones en una incógnita sin antes afirmar o reducir a un tipo más específico.
Algunos ejemplos:
let vAny: any = 10; // We can assign anthing to any
let vUnknown: unknown = 10; // We can assign anthing to unknown just like any
let s1: string = vAny; // Any is assigable to anything
let s2: string = vUnknown; // Invalid we can''t assign vUnknown to any other type (without an explicit assertion)
vAny.method(); // ok anything goes with any
vUnknown.method(); // not ok, we don''t know anything about this variable
El uso sugerido es:
A menudo, en ocasiones queremos describir el tipo menos capaz en TypeScript. Esto es útil para las API que desean indicar "esto puede ser cualquier valor, por lo que debe realizar algún tipo de comprobación antes de usarlo". Esto obliga a los usuarios a introspeccionar con seguridad los valores devueltos.