0

I try to use Spark with TypeScript but when I write this

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

It return me undefined but when I write only 1 line it works

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

I think that the problem come from the syntax. Someone can help me please

4

1 回答 1

0

使用箭头函数时,如果它们是一列,则可以省略 { },表达式返回的值将是函数的返回值。

在本质上:

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

转译为:

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

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

转译时您可以很容易地看到它。

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 语句:

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');
});

您可以在此处查看操场中的示例,并在此处了解有关 MDN 页面上箭头函数的更多信息

于 2017-06-02T09:57:09.830 回答