Тип bigint в TypeScript предназначен для работы с целыми числами произвольной величины, превышающими безопасный диапазон number (больше 2⁵³ - 1). Это важно при работе с криптографией, большими ID или финансовыми вычислениями.
Два способа создания:
- Литерал с суффиксом
n:const big = 9007199254740993n; - Функция
BigInt():const big = BigInt("9007199254740993");
Важно: bigint нельзя смешивать с number в арифметических операциях напрямую. Тренажер поможет освоить особенности этого типа на практических примерах.
- Модуль 1: Введение в TypeScript
- Модуль 2: Примитивные типы
- Модуль 3: Специальные типы
- Модуль 4: Массивы
- Модуль 5: Кортежи (Tuples)
- Модуль 6: Объекты
- Модуль 7: Функции
- Модуль 8: Union типы
- Модуль 9: Литеральные типы
- Модуль 10: Type Aliases
- Модуль 11: Интерфейсы
- Модуль 12: Type Guards и Narrowing
- Модуль 13: Enums
- Модуль 14: Классы
- Модуль 15: Generics — основы
- Модуль 16: Generics — ограничения
- Модуль 17: Utility Types — базовые
- Модуль 18: Utility Types — работа с Union
- Модуль 19: Utility Types — функции
- Модуль 20: Type Assertions
- Модуль 21: Keyof и Typeof операторы
- Модуль 22: Mapped Types
- Модуль 23: Conditional Types
- Модуль 24: Discriminated Unions
- Модуль 25: Модули и типы
- Модуль 26: Declaration Files
- Модуль 27: Типизация асинхронного кода
- Модуль 28: Практические паттерны
1. Создание bigint
Дополните фрагмент кода на TypeScript, объявив переменные типа bigint. Используйте два способа создания bigint: с помощью суффикса n и функции BigInt(). Заполните пропуски так, чтобы код компилировался без ошибок. Обратите внимание, что для создания bigint из числового литерала необходимо добавить суффикс n, а для преобразования числа с помощью функции - вызвать BigInt().
let big1: bigint = 1000 input1S;
let big2: bigint = input2S(2000);
let big3: bigint = 3000 input3S;
let big4: bigint = 5000n; // пример без пропуска2. Ошибка смешивания типов
В данном фрагменте кода TypeScript допущена одна ошибка, связанная с неправильным смешиванием типов bigint и number. В TypeScript запрещено выполнять арифметические операции между значениями типов bigint и number без явного преобразования. Найдите строку с ошибкой и исправьте её, добавив необходимое преобразование типа, чтобы код мог корректно выполниться.
let bigIntValue: bigint = 9007199254740993n;let numberValue: number = 100;let result = bigIntValue + numberValue;console.log(result);3. Результат операции
Проанализируйте фрагмент кода на TypeScript, выполняющий арифметическую операцию с типом bigint. Внимательно изучите выражение и выберите правильный результат его вычисления. Учтите особенности работы с большими целыми числами в TypeScript.
const a: bigint = 1000000000000000000n;
const b: bigint = 500000000000000000n;
const result: bigint = (a + b) / 2n;
console.log(result);4. number vs bigint
Сопоставьте характеристики типов данных TypeScript из левой колонки с соответствующими типами (number или bigint) в правой колонке. Обратите внимание на особенности работы с целыми и дробными числами, а также на синтаксические требования каждого типа.
bigintnumbernumberbigintnumberbigint5. Вычисли значение
Проанализируйте приведённый фрагмент кода на TypeScript, в котором используются переменные типа bigint. Вычислите значение выражения и введите результат в виде целого числа. Обратите внимание на приоритет операций и правила работы с целыми числами произвольной длины. Введите только число, без суффикса 'n' и дополнительных символов.
let a = 10n;
let b = 5n;
let c = 2n;
let result = a + b * c;6. Допустимые операции
Перед вами список выражений и операций с использованием типа bigint в TypeScript. Распределите их по двум категориям: 'допустимо' (корректные операции, которые скомпилируются и выполнятся) и 'вызовет ошибку компиляции' (некорректные операции, которые TypeScript не позволит скомпилировать). Обратите внимание, что тип bigint несовместим с типом number в арифметических операциях без явного преобразования.
10n + 5n10n + 5BigInt(10) + 5n10n / 3n10n * 2BigInt(10) * BigInt(5)10n ** 310n % 3n