在flowjs 0.54.0中新的“Missing annotation”错误
切换到0.54.0以下代码片段后:
function runKarmaTest() { const KARMA_CONFIG = {}; return new Promise(function (resolve, reject) { new karma.Server(KARMA_CONFIG, function (exitCode) { if (exitCode === 0) { resolve(); } else { reject(exitCode); } }).start(); }); }
报告以下错误:
Error: scripts/runKarma.js:76 v---------------------------------------- 76: return new Promise(function (resolve, reject) { 77: new karma.Server(KARMA_CONFIG, function (exitCode) { 78: if (exitCode === 0) { ...: 84: }); -^ type parameter `R` of constructor call. Missing annotation
在行中return new Promise(function (resolve, reject) {
我似乎无法弄清楚什么是错的?
它看起来像它想知道的是承诺包装的价值的types。 在这种情况下,它看起来像只是undefined
,因为成功案例不给任何价值。 你可以注释返回这个函数返回一个Promise<void>
或类似的东西,使这个错误消失的函数。
不过,好奇的是,这发生在0.54而不是之前。
runKarmaTest
函数中的Promise<void>
注解解决了这个问题:
function runKarmaTest(): Promise<void> { const KARMA_CONFIG = {}; return new Promise(function (resolve, reject) { new karma.Server(KARMA_CONFIG, function (exitCode) { if (exitCode === 0) { resolve(); } else { reject(exitCode); } }).start(); }); }
我还不确定:
- 为什么这个注释是在0.54而不是在以前
- 为什么stream
Type Inference
无法从parsing中缺less的参数中推断出它