打字稿语法的火花

spark for typescript syntax

我尝试将 Spark 与 TypeScript 结合使用,但是当我写这篇文章时

Spark.get("/facture", (req, res) => { 
    chalk.red('Hello test');
    chalk.green('Hello word');
})

它 return 我未定义但是当我只写 1 行时它有效

Spark.get("/facture", (req, res) => 
    chalk.green('Hello word');
)

我认为问题出在语法上。有人可以帮助我

当使用箭头函数时,如果它们是一行,你可以省略 { } 并且表达式 return 的值将是函数的 return 值。

本质上:

Spark.get("/facture", (req, res) => 
    chalk.green('Hello word');
)

转译为:

Spark.get("/facture", function (req, res) {
    return chalk.green('Hello word');
});

但是,当您有多个语句并且为箭头函数创建主体时,您必须像在普通函数中那样手动 return 值。

转译后你可以很容易地看到它。

Spark.get("/facture", (req, res) => { 
    chalk.red('Hello test');
    chalk.green('Hello word');
})

转译为:

Spark.get("/facture", function (req, res) {
    chalk.red('Hello test');
    chalk.green('Hello word');
});

如果你想return你必须写return语句:

Spark.get("/facture", (req, res) => { 
    chalk.red('Hello test');
    return chalk.green('Hello word');
})

所以在javascript中就这样结束了:

Spark.get("/facture", function (req, res) {
    chalk.red('Hello test');
    return chalk.green('Hello word');
});

您可以在 playground 中查看示例 here and learn more about arrow functions on the MDN page for them here