TypeScript Flashcards
Перегрузка функции (Function overload)
Это возможность определить несколько вариантов сигнатур одной функции с разными типами параметров, чтобы обеспечить более точную типизацию и поведение функции в зависимости от переданных аргументов.
Overload Signatures:
type MakeDate = {
(timestamp: number): Date;
(m: number, d: number, y: number): Date;
};
Implementation Signature:
const makeDate:MakeDate = function (mOrTimestamp: number, d?: number, y?: number): Date {
if (d !== undefined && y !== undefined) {
return new Date(y, mOrTimestamp, d);
} else {
return new Date(mOrTimestamp);
}
};
Дженерики
Это механизм, позволяющий создавать обобщенные типы и функции, которые могут работать с различными типами данных, обеспечивая безопасность типов и повторное использование кода.
type PaymentInfo<T> = { // T — параметр дженерика
id: string;
amount: number;
currency: T; // «настраиваем» тип поля currency
}</T>
const paymentInfo: PaymentInfo<string> = // …</string>
Преимущества TypeScript
1) Помогает нам постоянно получать оптимизированный машинный код, так как когда мы всегда ожидаем получить в функциии одни и те же типы данных, то такой байт код будет обрабатываться компилятором Turbofan и мы получим оптимизированный машинный код