Manuscrito la prevención de la simple comprobación de la longitud del condicional oculta útil métodos y propiedades

0

Pregunta

Esta es una transcripción de la pregunta usando discord.js como un ejemplo, no hay necesidad de entender la biblioteca para ayudar.

Me estoy convirtiendo mi app de lo normal js, cuando llama a un método que me da un tipo de mapa con una clave y un valor. Ahora que estoy utilizando la máquina y la biblioteca dispone de tipo de definiciones, ya no lo puedo comprobar el tamaño de la respuesta.

const attachments = interaction.options.getMessage('message', true).attachments;

Por lo anteriormente sólo podía llamar a un tamaño de la propiedad, pero ahora estoy restringido a estos tipos:

archivos adjuntos: Collection<string, MessageAttachment> | APIAttachment[]

Es malo practicar solo tienes que elegir uno de los condicionales mediante el uso de la como palabra clave, así que tengo más propiedades para jugar? ¿Cómo puedo obtener el tamaño de los archivos adjuntos o resolver de forma segura a un tipo? Sólo tienen iteradores.

Entiendo los beneficios de la máquina y estoy evitando cualquier chapucero soluciones. Estoy tratando de aprender a trabajar mejor con la máquina y desea utilizar los tipos que la biblioteca me ha dado.

1

Mejor respuesta

1

Yo recomendaría este simple revisión

Se podría hacer algo como:

Si desea que los archivos adjuntos a ser una colección

import { Collection } from "discord.js"
    
if(attachments instanceof Collection){
    // Do this
}

o si desea que los archivos adjuntos a ser una matriz de

import { Collection } from "discord.js"

if(!(attachments instanceof Collection)){
    // Do that
}

Los manuscritos detectará automáticamente attachments para ser un array o colección

2021-11-24 03:40:51

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................