# Операции над данными в TypeScript

TypeScript, в отличие от других языков со строгой типизацией, позволяет выполнять операции над разными типами данных, не преобразуя их в один общий тип.

Давайте посмотрим на примере, что имеется ввиду. Пусть у нас есть строковая и числовая переменные:

`let test1: number = 123; let test2: string = 'abc';`

Давайте выполним сложение этих переменных:

`console.log(test1 + test2); // выведет '123abc'`

То есть можно складывать, например, строки и числа, и это не приведет к ошибке. То есть TypeScript следит только за тем, чтобы программист не изменил тип данных переменной.

Для примера в следующем коде мы попытаемся записать строку в числовую переменную и это уже приведет к ошибке:

`let test1: number = 123; let test2: string = 'abc'; let test3: number; test3 = test1 + test2; // пытаемся записать строку`

Не запуская код определите каким будет результат выполнения кода:

`let test1: number = 123; let test2: number = 456; console.log(test1 + test2);`

Не запуская код определите каким будет результат выполнения кода:

`let test1: string = '123'; let test2: string = '456'; console.log(test1 + test2);`

Не запуская код определите каким будет результат выполнения кода:

`let test1: string = '123'; let test2: string = '456'; let test3: number = test1 + test2; console.log(test3);`

Не запуская код определите каким будет результат выполнения кода:

`let test1: number = 123; let test2: number = 456; let test3: string = test1 + test2; console.log(test3);`

Не запуская код определите каким будет результат выполнения кода:

`let test1: number = 123; let test2: number = 456; let test3: string = test1 + ' ' + test2; console.log(test3);`

Не запуская код определите каким будет результат выполнения кода:

`let test1: number = 123; let test2: number = 456; let test3: string = '!'; let test4: string = test1 + test2 + test3; console.log(test4);`

Не запуская код определите каким будет результат выполнения кода:

`let test1: number = '123'; let test2: number = '456'; console.log(test1 + test2);`

Не запуская код определите каким будет результат выполнения кода:

`let test1: number = +'123'; let test2: number = +'456'; console.log(test1 + test2);`

Не запуская код определите каким будет результат выполнения кода:

`let test: string = '1'; test += 1; console.log(test);`
← →
↑