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