TypeError()
class VkCarouselTemplate { constructor() { this._elements = []; } addSlide(photoId, buttons) { if (photoId === undefined) throw new Error("Photo id should be specified"); if (buttons && buttons.currentRow?.length > 2) throw new Error("Invalid buttons format"); if (this._elements.length > 9) throw new Error("Maximum elements count reached"); this._elements.push({ photo_id: photoId, action: { type: "open_photo" }, buttons: buttons?.currentRow }); return this; } toJSON() { return { type: "carousel", elements: this._elements }; } toString() { return JSON.stringify(this.toJSON()); } } const template = new VkCarouselTemplate() .addSlide(1, { currentRow: [1, 2] }) .addSlide(1, { currentRow: [1, 2] }); console.log(JSON.stringify(template), template.toJSON());
Кстати, а для чего значок вопроса
Ого, делать неча было
Ну минуты 3 заняло
optional chaining
Рекомендую кстати пораньше вытащить element в отдельный класс
Кстати, ты знаешь? В каруселе в вк buttons обязательный параметр для выведения клавиатуры? Ну коротко клавиатура обязательна?
Понятия не имею, я первый раз в жизни после твоего вопроса пошёл и посмотрел формат в котором ВК ожидает видеть данные
Обсуждают сегодня