Добавление определений типов и автодополнения к вашим модулям
Добавление определений типов и автодополнения к вашим модулям
Автоматически переведённая страница
К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).
Сt.js поддерживает добавление определений типов для котомодов. С их помощью вы можете обеспечить живые проверки типов, автодополнение и подробную документацию при наведении пользователя на имена методов вашего модуля.
Ct.js будет искать файл types.d.ts
в корневой директории вашего модуля. Например, у place и pointer такие есть. types.d.ts
— это файл объявлений TypeScript, специальный файл в формате манифеста, который описывает методы и переменные, предоставляемые вашим модулем. Дополнительную информацию можно найти в документации TypeScript.
Сам по себе файл объявлений может обеспечивать только проверки типов и список автодополнений. С помощью аннотаций в стиле JSDoc и markdown-комментариев вы можете получить подробную документацию прямо в редакторе.
Пример: описание модуля
Файл types.d.ts
для воображаемого модуля под названием sosiska
будет выглядеть следующим образом:
/**
* Модуль для жарки гибких колбасок внутри вашей игры.
*/
declare namespace sausage {
/* Здесь идут все методы и свойства */
/**
* Жарит копию, добавляя хрустящую корочку
* @param {Copy} me Копия, которая должна быть обжарена
*/
function roast(me: Copy): void;
/**
* Накрывает копию кетчупом. Потребляет `sosiska.ketchup`.
* @param {Copy} me Копия, на которую нужно налить кетчуп
* @param {boolean} tonsOfKetchup Если установить значение `true`, то будет использовано огромное количество кетчупа для этой конкретной копии
*/
function addKetchup(me: Copy, tonsOfKetchup?: boolean): void;
/**
* Количество оставшегося кетчупа
*/
var ketchup: number;
}
Пример: описание новых полей и функций для встроенных типов
Расширение класса, такого как Copy или Background, более сложное, поскольку TypeScript не поддерживает слияние деклараций классов непосредственно. Вам придется использовать интерфейсы:
interface BasicCopy {
/**
* Жарит вашу копию, добавляя хрустящую корочку
*/
function roastMe(): void;
/**
* Мера того, насколько сильно была обжарена ваша копия
*/
roastiness: number;
}
Выходные данные выше будут отображать метод roastMe
и параметр roastiness
в автозаполнении для всех копий в ct.IDE и проверять ваш код на ошибки типизации.
Встроенные классы
В Ct.js есть несколько классов, представляющих игровые сущности. Вы должны использовать эти имена для описания аргументов и свойств вашего модуля (как видно в разделе "описание модуля").
Copy
,Background
,Tileset
,Room
,- Все классы Pixi.js.
Так ct.IDE сможет предоставить разумные автозаполнения для ваших полей и аргументов функций.