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