网站搜索

javascript - Typescript λ 表达式错误


我正在看一个 TypeScript 教程,在某一刻我必须写这行代码

var squareItSimpler = function(h:number, w:number) => h * w;

但是我就是无法让它工作。我一直收到错误

The command "C:\Program Files (x86)\Microsoft SDKs\TypeScript\tsc.exe"  --module AMD --target ES3....exited with code 1

我真的不知道该怎么办,我是不是哪里做错了?

有趣的是,以下工作:

var squareItSimplest = (h:number, w:number) => h * w;

我正在使用 TypeScript 0.9.0.1

答案#1

当你在 TypeScript 中这样使用 lambda 时,你省略了 function 关键字。也许你的教程有错误。

编辑 — 来自规范:

TypeScript 支持箭头函数表达式,这是 ECMAScript 6 计划中的一项新特性。箭头函数表达式是一种紧凑的函数表达式形式,它省略了 function 关键字,并且拥有 this 的词法作用域。

答案#2

要么:

var squareItSimpler = (h:number, w:number) => h * w;

或者

var squareItSimpler = function(h:number, w:number) { return h * w; };