2

我正在尝试从可以对 JavaScript 具有任何输入类型的块生成代码。但要这样做,我需要知道这些块在生成期间是什么类型。

大多数块内部已经有一个类型用于类型检查

"output": ["Integer","Number"],

或者

this.setOutput(true, 'String');

但我找不到访问“输出”字段的函数。

理想情况下,我想像这样访问生成器函数中的类型:

var return_type = block.getChildren()[0].functionToAccessOutputWith;

有“.type”字段,但该字段给出了块类型的名称,而不是输出定义的返回值。

这似乎是一个非常普遍的问题,但我在网上找不到任何东西。

4

1 回答 1

0

只需按照Block.setOutput(). 这并不难。最终你会到达一条线Blockly.Connection,上面写着this.check_ = check;

所以你要找的基本上是block.outputConnection.check_. 但这不是一个函数,并且_表明它应该是私有财产。为方便起见,我会在 Block 中编写一个 getter 函数。

于 2020-09-04T16:04:23.347 回答