- Angular UI Development with PrimeNG
- Sudheer Jonna Oleg Varaksin
- 267字
- 2021-07-15 17:32:54
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");
- 程序員面試筆試寶典(第3版)
- 看透JavaScript:原理、方法與實踐
- Apache Spark Graph Processing
- PostgreSQL Replication(Second Edition)
- C++面向對象程序設計習題解答與上機指導(第三版)
- Node.js Design Patterns
- Instant Nancy Web Development
- Protocol-Oriented Programming with Swift
- Instant PHP Web Scraping
- Beginning C++ Game Programming
- Spring 5 Design Patterns
- Python數據可視化之美:專業圖表繪制指南(全彩)
- PowerDesigner 16 從入門到精通
- Appcelerator Titanium:Patterns and Best Practices
- Getting Started with hapi.js