Введение в 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…