我正在学习一些Typescript并使用Trie结构来测试一些概念,似乎我不太了解生成器。打字稿和 js 的混合无济于事。
在找到初始节点后,我的搜索需要遍历递归结构。
search(prefix: string): Generator<[string, V], undefined, boolean> {
const findNode = [...]
enter code here
function* walkNodes(node: TrieNode<V>, prefix: string): Generator<[string,V], undefined, boolean> {
if (node.value != undefined) {
node.children.forEach( (child, key) =>
yield * walkNodes(child, prefix + key)
)
} else {
yield [prefix, node.value!]
}
return undefined
}
const startNode = findNode(prefix, this)
return walkNodes(startNode!, prefix)
}
翻译时出现错误,我理解但不知道如何避免。
return yield* walkNodes(child, prefix + key);
^^^^^
SyntaxError: Unexpected strict mode reserved word
at Object.compileFunction (node:vm:355:18)
现阶段我不确定发生了什么,如何在对象内部使用yield?
谢谢。