Как Typescript является необязательным статически типизированным языком?

Опубликовано: 2 Января, 2023

В этой статье мы рассмотрим статическую типизацию в машинописном тексте и то, что делает язык опционально статически типизированным.

TypeScript — это строго типизированный язык программирования, основанный на JavaScript. TypeScript позволяет указывать типы данных, передаваемых в коде, и имеет возможность сообщать об ошибках, когда типы не совпадают.

Что такое статически типизированный язык?

В статически типизированном языке проверка типов происходит во время компиляции. Компилятор принуждает значение использовать тот же тип. Давайте посмотрим на пример, который действителен в javascript.

let value = 5
value = "Hello World"

Выход:

Error: Type "string" is not assignable to type "number".

Тип значения меняется с числа на строку. Это запрещено в TypeScript.

Как Typescript может быть статически типизирован?

Typescript позволяет присвоить тип переменной. Typescript также может определить тип на основе инициализации переменной. Может быть случай, когда мы хотим сохранить значение в переменной, но не знаем ее тип во время написания программы. В этом случае мы хотим, чтобы компилятор отказался от проверки типов и передал значение без ошибок. Typescript имеет любой тип, что позволяет нам хранить значения любого типа и пропускать проверку типов.

Пример 1:

Typescript




let value: any = 5;
console.log(value);
value = "hello";
console.log(value);

Выход:

5
hello

Здесь значение может быть изменено с числового типа на строковый без какой-либо ошибки компиляции. Он указывает компилятору пропустить проверку типов.

Пример 2:

Typescript




function add(a: any, b: any): any {
    if (typeof a === "number" && typeof b === "number") {
        return a + b;
    }
    if (typeof a === "string" && typeof b === "string") {
        return a.concat(b);
    }
}
console.log(add(3,6));
console.log(add("Hello","TypeScript"));

Выход:

9
HelloTypeScript

В этом примере функция add() будет вычислять сумму переданных значений, если они являются числами. Если это строка, функция add() объединит их в одну строку.

Это свойство машинописи противоречит определению статически типизированного языка программирования. Поэтому TypeScript также называют опционально статически типизированным языком.