Maszynopisu tekst, zapobiegający prosty test długości, ponieważ warunkowy ukrywa przydatne metody i właściwości

0

Pytanie

To pytanie z машинописным tekstem, który korzysta z discord.js na przykład, nie trzeba orientować się w bibliotece, aby pomóc.

Ja конвертирую swoją aplikację z zwykłego js, kiedy dzwonię metoda, wydaje mi typ karty z kluczem i wartością. Teraz, gdy używam typescript i w bibliotece znajdują się definicje typów, ja już nie mogę sprawdzać rozmiar odpowiedzi.

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

Tak, że wcześniej mogłem tylko spowodować, że właściwość wielkości, ale teraz jestem ograniczony tymi typami:

załączniki: Kolekcja<wiersz, przyciąganie do postu> | Przyciąganie[]

To jest zła praktyka-wystarczy wybrać jeden z warunków, za pomocą słowa kluczowego as, aby miał więcej właściwości do gry? Jak mogę uzyskać rozmiar załączników lub bezpiecznie zezwolić na jeden typ? Mają tylko iteratory.

Rozumiem zalety pisania i unikam wszelkich hakerów rozwiązań. Próbuję nauczyć się lepiej pracować z машинописным tekstem i chcę użyć typy, które mi dała biblioteka.

1

Najlepsza odpowiedź

1

Polecam to proste rozwiązanie

Można zrobić coś takiego:

Jeśli chcesz, aby załączniki stanowiły kolekcję

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

lub jeśli chcesz, aby załączniki były tablicą

import { Collection } from "discord.js"

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

Następnie TypeScript automatycznie wykryje attachments być tablicy lub kolekcji

2021-11-24 03:40:51

W innych językach

Ta strona jest w innych językach

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