Заявления

Блоки операторов — это блоки без выходных соединений. Они действуют как операторы в текстовых языках.

Как и все блоки в Blockly, блоки операторов можно превратить в строки кода, определив генератор блочного кода.

import {javascriptGenerator} from 'blockly/javascript';

javascriptGenerator.forBlock['custom_block'] = function(block, generator) {
  // Collect argument strings.
  const fieldValue = block.getFieldValue('MY_FIELD');
  const innerCode = generator.statementToCode(block, 'MY_STATEMENT_INPUT');

  // Return code.
  return 'my code string';
}

Собрать строки аргументов

Все генераторы блочного кода требуют сбора значений полей и кода внутренних блоков .

// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');

// Collect inner block code strings.
const innerCode = generator.statementToCode(block, 'MY_STATEMENT_INPUT');

Если вы ссылаетесь на код внутреннего блока несколько раз, вам следует добавить кеширование аргументов в свой блок.

Возвращаемые значения

Тип возвращаемого значения генератора блочного кода инструкции — это строка кода.

return 'my code string';