В Blockly интерфейсы описывают функции, которые объект должен реализовать, чтобы заменить объект по умолчанию.
Вам не нужно наследовать от определенного класса, чтобы реализовать интерфейс. Вы можете делать все, что хотите под капотом, если вы предоставляете правильные функции и придерживаетесь любых требований, описанных в комментариях к интерфейсу. Однако общий шаблон для подключаемых модулей заключается в расширении класса по умолчанию и переопределении только тех функций, которые вы хотите изменить.
Чтобы указать средству проверки типов, что вы реализуете конкретный интерфейс, аннотируйте свой класс с помощью @implements {InterfaceName}
.
Интерфейсы Blockly определены в core/interfaces .