Dattiloscritto prevenzione lunghezza semplice per il controllo condizionale nasconde utili metodi e proprietà

0

Domanda

Questo è un dattiloscritto domanda utilizzando discord.js come un esempio, non c'è bisogno di capire la biblioteca di aiuto.

Sto convertendo la mia app dal normale js, quando chiamo un metodo è per me un tipo di mappa con una chiave e un valore. Ora che sto usando dattiloscritto e la biblioteca dispone di un tipo di definizioni, non riesco più a controllare la dimensione della risposta.

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

Quindi, in precedenza ho potuto solo chiamare una proprietà di dimensione, ma adesso mi sono limitato a questi tipi:

allegati: Collection<string, MessageAttachment> | APIAttachment[]

È cattiva pratica solo scelto uno dei condizionali utilizzando come parola chiave così ho più proprietà per giocare? Come posso ottenere la dimensione degli allegati in sicurezza o di risolvere in un tipo? Hanno solo iteratori.

Capisco i vantaggi del dattiloscritto e sto evitando qualsiasi hacky soluzioni. Sto cercando di imparare a lavorare meglio con la macchina, e si desidera utilizzare i tipi che la biblioteca mi ha dato.

1

Migliore risposta

1

Vorrei raccomandare questo semplice correzione

Si potrebbe fare qualcosa di simile:

Se si desidera che gli allegati da una collezione

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

o se si desidera che gli allegati da un array

import { Collection } from "discord.js"

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

Dattiloscritto rileva automaticamente attachments per essere un array o di una raccolta

2021-11-24 03:40:51

In altre lingue

Questa pagina è in altre lingue

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