Functions
Функции
function add(a: number, b: number): number {
return a + b
}
function test(_:number): void {}
// _ — это указывает компилятору, что параметр может не использоваться и мы это знаем
function test(): number & string {} // это означает, что вернется объект, у которого ключи будудт иметь тип number и тип string
// Описание возвращаемого значения:
interface ILength {
length: number
}
function withCount<T extends ILength>(value: T): {value: T, count: string} {
return {
value,
count: `Count: ${value.length}`
}
}
Перегрузка функций
interface MyPosition {
x: number | undefined
y: number | undefined
}
interface MyPositionWithDefault extends MyPosition {
default: string
}
// Определяем возможные способы вызова
function position(): MyPosition
function position(a: number): MyPositionWithDefault
function position(a: number, b: number): MyPosition
// Определяем саму функцию
function position(a?: number, b?: number) {
if (!a && !b) {
return {x: undefined, y: undefined}
}
if (a && !b) {
return {x: a, y: undefined, default: a.toString()}
}
return {x: a, y: b}
}
Lambda
const split = (a: string, s: string): string[] => a.split(s)
Last updated