dob*_*ler 4 javascript node.js flowtype
切换到流量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();
});
}
Run Code Online (Sandbox Code Playgroud)
报告以下错误:
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
Run Code Online (Sandbox Code Playgroud)
在线return new Promise(function (resolve, reject) {,我似乎无法弄清楚什么是错的?
Ada*_*dam 11
看起来它想要知道的是承诺包含的值的类型.在这种情况下,它看起来只是undefined,因为成功案例没有给出任何价值.您可以注释返回此函数的函数返回a Promise<void>或类似的东西,以使此错误消失.
奇怪的是,这发生在0.54而不是之前.
函数中的Promise<void>注释runKarmaTest解决了这个问题:
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();
});
}
Run Code Online (Sandbox Code Playgroud)
我还不确定:
Type Inference不能从解决中的缺失参数中推断出来