TypeScript в сравнении с JavaScript
TypeScript является надмножеством JavaScript. Это означает, что TypeScript имеет некоторые дополнительные возможности по сравнению с JavaScript. В JavaScript нам не нужно определять тип, но в TypeScript мы строго следуем типу. В результате вероятность ошибок будет ниже.
Основные типы
Некоторые распространенные типы — number
, string
, boolean
, undefined
, null
, unknown
, any
.
Число
В TypeScript для переменной, которая будет хранить десятичное число, тип переменной должен быть определен как тип number
. В то время как большое целое число получает тип bigint
.
const total: number = 1000;
const discount: number = 1000*0.1;
const max: bigint = 10n ** 9n;
Строка
В TypeScript переменная, которая будет хранить текстовые данные, тип переменной должен быть определен как тип string
.
const name: string = "Pranta";
const position: string = "Frontend Developer";
Boolean
Это один из основных типов, который содержит boolean
значение true
или false
.
const loading: boolean = true|false;
Массив
Мы можем определить тип массива тремя способами. В первых двух способах типы определены в явном виде. Третий способ упрощает задачу, используя интерфейс
или тип
.
First way -
const numbers: number[] = [1, 2, 3]
const products: string[] = ["bag", "laptop", "mobile"]
Second way -
const numbers: Array<number> = [1, 2, 3]
const products: Array<string> = ["bag", "laptop", "mobile"]
Если у нас есть массив объектов, то мы можем использовать ключевое слово type
или определить interface
, указывающий тип всех свойств объекта. Лучший способ использовать interface
.
const IProducts {
name: string;
price: number;
}
const products: IProducts[] =[{ name: "Mobile", price: 10000}, { name: "Mobile", price: 10000 }];
Любой
Тип any
используется редко. Он помогает работать с существующим кодом JavaScript. Когда все типы данных неизвестны, можно считать, что это тип any
.
const looselyTypedVariable: any = {};
console.log(looselyTypedVariable.name); //don't give any error
Но у использования типа any
есть некоторые недостатки. С типом any
TypeScript не выдаст ошибку, если мы обращаемся к свойству, не существующему в данном объекте.
const strictlyTypedVariable: {name: string} = {name:"Pranta"};
console.log(strictlyTypedVariable.age); //show error
Не используя any
, мы можем использовать тип unknown
, который является более значимым. Мы должны стараться избегать использования any
, когда в этом нет необходимости, так как это не обеспечивает безопасность типов.