В Typescript утверждение типа — это метод, который информирует компилятор о типе переменной. Утверждение типа похоже на приведение типов, но оно не реконструирует код. Вы можете использовать утверждение типа, чтобы указать тип значения и указать компилятору не выводить его. Когда мы хотим изменить переменную с одного типа на другой, например с любого на номер и т. д., мы используем утверждение типа.
Мы можем использовать угловые скобки <> или ключевые слова для утверждения типа. Когда мы переносим код с машинописного текста на другой язык, в игру вступает утверждение типа. Поддержка среды выполнения обеспечивается приведением типов, тогда как утверждение типа не влияет на среду выполнения. Он используется компилятором.
Пример 1: Утверждение типа с использованием синтаксиса
В этом примере мы присваиваем строку «geeksforgeeks» переменной неизвестного типа. Далее мы присваиваем значение строки другой переменной и вычисляем длину строки. В приведенном ниже коде мы утверждали, что str имеет тип number, используя ключевое слово as.
Javascript
let str: unknown =
"bestprogrammer"
;
console.log(str);
let len: number = (str as string).length;
console.log(len);
Выход:
bestprogrammer
14
Пример 2. Утверждение типа с использованием синтаксиса угловых скобок <>
Этот пример аналогичен предыдущему, мы присваиваем число переменной типа any, а затем присваиваем значение другой переменной, и мы утверждали, что переменная num имеет тип «Число». Мы использовали угловые скобки <> вместо ключевых слов.
Javascript
let num: any = 77;
// Conversion from any to number
let num1 = <Number> num;
console.log(num1);
console.log(
typeof
num1);
Выход:
77 number
Пример 3: Утверждение типа для объектов
Иногда мы можем столкнуться с ситуацией, когда объект определяется без каких-либо свойств. В связи с этим компилятор выдает ошибку. Однако мы можем предотвратить эту проблему, используя утверждение типа. С помощью следующего примера мы можем понять это.
Javascript
interface details {}
details.first_name =
"Sarah"
;
details.last_name =
"jane"
;
Выход:
error TS2693: 'details' only refers to a type, but is being used as a value here. details.first_name = "Sarah";
После определения параметров компилятор не выдает ошибку. Компилятор выдает ошибку в предыдущем примере, поскольку не может найти никаких свойств внутри объекта. Утверждение типа помогает нам устранять такие ошибки. Мы использовали утверждение типа для деталей.
Javascript
interface details {
first_name: string;
last_name: string;
}
let person_1 = <details>{};
person_1.first_name =
"Sarah"
;
person_1.last_name =
"jane"
;
console.log(person_1);
Выход: { first_name: 'Sarah', last_name: 'jane' }