2016-11-03 55 views
0

嘿家伙我想知道如何在打字稿中制作回调函数。typescript - 创建回调函数

我知道如何做到这一点的香草JS:

function mySandwich(param1, param2, callback) { 
alert('Started eating my sandwich.\n\nIt has: ' + param1 + ', ' + param2); 
callback();} 

mySandwich('ham', 'cheese', function() { 
alert('Finished eating my sandwich.');}); 

但我不能找到一种方法,与TS做到这一点。 你们有这样的例子吗?

谢谢!

+0

我会做完全相同的方式(顺便说一句,ES5是打字稿的子集,让你在ES5写的一切一个有效的TypeScript也是如此)。 – martin

回答

6

Typescript是javascript的超集,所以任何javascript代码都是有效的打字稿代码。

但是你可以使用类型安全:

function mySandwich(param1: string, param2: string, callback:() => void) { 
    alert('Started eating my sandwich.\n\nIt has: ' + param1 + ', ' + param2); 
    callback(); 
} 

mySandwich('ham', 'cheese', function() { 
    alert('Finished eating my sandwich.'); 
}); 

mySandwich('ham'); // Error: Supplied parameters do not match any signature of call target 

mySandwich('ham', 'cheese', (num: number) => 4 * num); // Error: Argument of type '(num: number) => number' is not assignable to parameter of type '() => void' 

code in playground