官术网_书友最值得收藏!

Functions

Parameters and return values in the function signature can be typed too. Types protects you against JavaScript errors during function execution because the compiler warns you punctually at build time when the wrong types are used:

function add(x: number, y: number): number {
return x + y;
}

Function type is a way to declare the type of a function. To explicitly declare a function type, you should use the keywords var or let, a variable name, a colon, a parameter list, a fat arrow =>, and the function's return type:

var fetchName: (division: Division, customer: Customer) => string;

Now, you must provide an implementation of this declaration:

fetchName = function (division: Division, customer: Customer): string {
// do something
}

This technique is especially useful for callbacks. Imagine a filter function which filters arrays by some criterion. An exact criterion can be encapsulated in the passed in callback function that acts as predicate:

function filter(arr: number[], callback: (item: number) => boolean): number[] {
let result: number[] = [];
for (let i = 0; i < arr.length; i++) {
if (callback(arr[i])) {
result.push(arr[i]);
}
}
return result;
}

A possible function call with a specific callback could appear as follows:

let result = filter([1, 2, 3, 4], (item: number) => item > 3);

In TypeScript, every function parameter is assumed to be required. There are two ways to mark a parameter as optional (optional parameters can be omitted when calling the function).

  • Use a question mark after the parameter name:
function doSomething(param1: string, param2?: string) {
// ...
}
  • Use the parameter's default value (ECMAScript 2015 feature), which gets applied when no value is provided:
function doSomething(param1: string, param2 = "some value") {
// ...
}

Now, you are able to call this function with just one value.

doSomething("just one value");
主站蜘蛛池模板: 宿州市| 沈阳市| 北海市| 买车| 涟源市| 嵊泗县| 涞源县| 吴江市| 邯郸县| 错那县| 察雅县| 武鸣县| 玉龙| 延长县| 肇庆市| 渝中区| 新乡市| 西林县| 康保县| 尉氏县| 佛学| 西昌市| 油尖旺区| 杨浦区| 延津县| 马关县| 德清县| 长武县| 石柱| 尖扎县| 商城县| 中江县| 梅河口市| 开平市| 工布江达县| 咸宁市| 东兰县| 凌海市| 乃东县| 南澳县| 金秀|