Tapuscrit de prévenir simple contrôle de la longueur du conditionnel dissimule utile méthodes et propriétés

0

La question

C'est un tapuscrit question à l'aide de discord.js comme un exemple, pas besoin de comprendre à la bibliothèque de l'aide.

Je suis la conversion de mon application à partir de la normale js, lorsque j'appelle une méthode, il me donne un type de carte avec une clé et une valeur. Maintenant que je suis à l'aide de la machine et de la bibliothèque a des définitions de type, je ne peux plus vérifier la taille de la réponse.

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

Donc déjà je pouvais l'appeler une propriété de taille, mais maintenant que je suis limité à ces types:

pièces jointes: Collection<string, MessageAttachment> | APIAttachment[]

Est-ce mal de s'exercer à juste choisi l'une des conditions à l'aide de la comme mot-clé, de sorte que j'ai plus de propriétés pour jouer avec? Comment puis-je obtenir la taille des pièces jointes ou des en toute sécurité résoudre à un seul type? Ils n'ont que des itérateurs.

Je comprends les avantages de la machine et je suis d'éviter toute hacky solutions. Je suis en train d'apprendre à mieux travailler avec la machine et que vous voulez utiliser les types de la bibliothèque m'a donné.

1

La meilleure réponse

1

Je recommande cette solution simple

Vous pourriez faire quelque chose comme:

Si vous voulez que les pièces jointes à une collection

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

ou si vous voulez que les pièces jointes à un tableau

import { Collection } from "discord.js"

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

Tapuscrit sera alors automatiquement détecter attachments pour être un tableau ou d'une collection

2021-11-24 03:40:51

Dans d'autres langues

Cette page est dans d'autres langues

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