В C# и Java типизация происходит на уровне компилятора, что означает, что проверка типов выполняется во время компиляции программы. Оба языка могут быть классифицированы как языки со статической типизацией.
С другой стороны, TypeScript (TS) является языком, разработанным на основе JavaScript, который добавляет статическую типизацию и другие возможности, такие как интерфейсы и перечисления. Это означает, что в TS можно объявлять типы переменных, параметров функций и возвращаемых значений функций.
В отличие от Java и C#, TS является суррогатом JavaScript и не является нативным языком программирования. Однако, он добавляет статическую типизацию, что позволяет разработчику обнаруживать ошибки во время разработки.
В Java и C# типы переменных должны быть объявлены явно, например:
int number = 10; String name = "John";
В TS типы переменных также могут быть объявлены явно, например:
let number: number = 10; let name: string = "John";
Однако, в TS можно также опустить явное объявление типов, и компилятор TS будет пытаться выводить типы автоматически на основе значений:
let number = 10; let name = "John";
Это называется выводом типов и позволяет более гибко использовать TS.
В связи с этим, отличие в обозначении типизации между Java и C# для понятия TS сводится к тому, что TS сам по себе является дополнительным языком, дополняющим JavaScript, и добавляет статическую типизацию, которая может быть явно объявлена или выведена компилятором, в отличие от Java и C#, в которых типы должны быть явно указаны при объявлении переменных.