我希望验证promise语法,如下所示:
promise.foo(value).thedn((value) => {
console.log(value);
}).casch((value) => {
console.log(value);
});
如果例如then
拼写错误或catch
。我正在使用Atom Text Editor,但我认为这适用于所有编辑。
答案 0 :(得分:0)
ESLint无法知道您的foo
函数会返回一个承诺,并且无法知道正确拼写的then
必然是一个承诺then
(因此请确保仅.then
,.catch
或.finally
用于返回),而不是语义不同但共享相同名称的内容。
如果你想在运行时之前进行那种检查,你可以看看TypeScript,它在JavaScript之上引入了一个类型系统,并在“编译”时从TypeScript到JavaScript进行验证(并且在运行中)在许多编辑[VS.Net,vscode,......不知道Atom]中。)
例如,在TypeScript中,您可以定义foo
返回字符串的Promise,如下所示:
function foo() : Promise<String> {
// ...
}
然后,这个代码将被TypeScript感知编辑器和TypeScript-to-JavaScript编译器标记为错误:
foo().thedn((value) => {
console.log(value);
}).casch((value) => {
console.log(value);
});
...因为它知道Promise没有名为thedn
的方法。 (Live example in the TypeScript playground。)如果您解决了这个问题,它会在.casch
标记出同样的问题。 (Live example updated。)