TypeScript
Типы — главная фишка. Каждый эндпоинт, параметр и ответ типизированы на этапе компиляции и валидируются Zod на рантайме.
Inferred-типы
Импортировать типы обычно не нужно — они выводятся из методов:
ts
import { createTrelloClient } from 'trello.js';
const trello = createTrelloClient({ apiKey, apiToken });
const board = await trello.boards.getBoard({ id: 'abc' });
// ^? Board — выведено, полностью типизировано
board.name; // string
board.prefs.background; // stringЯвный импорт типов
ts
import type { Board, Card, Member } from 'trello.js';
function summarize(board: Board, cards: Card[]): string {
return `${board.name} — ${cards.length} карточек`;
}Импорт схем
У каждой модели есть соответствующая Zod-схема. Используйте её для валидации данных, не пришедших через клиент (webhook payloads, кэшированные ответы, фикстуры):
ts
import { BoardSchema, type Board } from 'trello.js';
const payload: unknown = await req.json();
const board: Board = BoardSchema.parse(payload);parse бросает ZodError при несоответствии. Используйте safeParse для result-стиля:
ts
const result = BoardSchema.safeParse(payload);
if (!result.success) {
console.error(result.error.issues);
return;
}
const board = result.data;Типы параметров
У каждого метода есть соответствующий тип параметров, экспортированный из корня:
ts
import type { CreateCard } from 'trello.js';
function buildCardParams(listId: string, title: string): CreateCard {
return { idList: listId, name: title, pos: 'top' };
}strict mode
trello.js собран с strict: true и verbatimModuleSyntax: true. Работает и в менее строгих проектах, но включать эти опции на своей стороне рекомендуется — они отлавливают реальные баги.