Введение в TypeScript для начинающих
TypeScript — это надмножество языка JavaScript. Он обеспечивает те же удобства, что и другие языки, такие как Flow, в JavaScript. TypeScript постепенно становится стандартом де-факто для создания современных надежных приложений.
По своему дизайну TypeScript позволяет нам включать аннотации типов и обеспечивать их соблюдение в нашем коде JavaScript, функция, изначально недоступная в стандартном JavaScript. Эта возможность задавать и проверять типы данных повышает надежность и удобство сопровождения нашего кода, позволяя нам обнаруживать ошибки, связанные с типами, на ранних этапах процесса разработки и создавать более надежные и устойчивые к ошибкам приложения.
Почему TypeScript?
Давайте рассмотрим функцию JavaScript, которая принимает список длиной в два элемента. Первая позиция списка содержит имя, а вторая позиция содержит фамилию. Цель нашей функции — объединить эти два элемента и вернуть полное имя.
Взгляните на функцию ниже.
function concatenateNames(namesArray) {
// Extract the first name and last name from the list
const firstName = namesList[0];
const lastName = namesList[1];
// Concatenate the first name and last name with a space in between
const fullName = `${firstName} ${lastName}`;
// Return the full name
return fullName;
}
// Example usage:
const namesArray = ["John","Doe"];
const fullNames = concatenateNames(namesArray);
console.log(fullNames); Outputs => //John Doe
Что произойдет, если мы передадим объект вместо списка в качестве параметров функции при вызове функции?
Обратите внимание, что произойдет:
const namesObject = {
firstname: 'John',
lastname: 'Doe'
};
const fullNames = concatenateNames(namesObject);
console.log(fullNames);
// outputs => undefined undefined
Обратите внимание, что мы получаем undefined undefined, JavaScript это не волнует, и он просто будет работать с любым типом, который мы ему предоставляем. Одним из решений является добавление проверки извлечения перед обработкой данных.
function concatenateNames(namesList) {
// Check if the input list has exactly two…