Тип bigint

Тренажер по TypeScript для пользователей с начальным уровнем подготовки.

Тренажер по TypeScript

Тип bigint в TypeScript предназначен для работы с целыми числами произвольной величины, превышающими безопасный диапазон number (больше 2⁵³ - 1). Это важно при работе с криптографией, большими ID или финансовыми вычислениями.

Два способа создания:

  • Литерал с суффиксом n: const big = 9007199254740993n;
  • Функция BigInt(): const big = BigInt("9007199254740993");

Важно: bigint нельзя смешивать с number в арифметических операциях напрямую. Тренажер поможет освоить особенности этого типа на практических примерах.

Список тем

1. Создание bigint

id: 40627_bigint_01_replace

Дополните фрагмент кода на 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; // пример без пропуска
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Ошибка смешивания типов

id: 40627_bigint_02_error

В данном фрагменте кода TypeScript допущена одна ошибка, связанная с неправильным смешиванием типов bigint и number. В TypeScript запрещено выполнять арифметические операции между значениями типов bigint и number без явного преобразования. Найдите строку с ошибкой и исправьте её, добавив необходимое преобразование типа, чтобы код мог корректно выполниться.

Найдите ошибку и исправьте
let bigIntValue: bigint = 9007199254740993n;
let numberValue: number = 100;
let result = bigIntValue + numberValue;
console.log(result);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Результат операции

id: 40627_bigint_03_predict

Проанализируйте фрагмент кода на TypeScript, выполняющий арифметическую операцию с типом bigint. Внимательно изучите выражение и выберите правильный результат его вычисления. Учтите особенности работы с большими целыми числами в TypeScript.

Выберите правильный вариант ответа
const a: bigint = 1000000000000000000n;
const b: bigint = 500000000000000000n;
const result: bigint = (a + b) / 2n;
console.log(result);
Сообщения
Проверить
Показать подсказку

4. number vs bigint

id: 40627_bigint_04_compare

Сопоставьте характеристики типов данных TypeScript из левой колонки с соответствующими типами (number или bigint) в правой колонке. Обратите внимание на особенности работы с целыми и дробными числами, а также на синтаксические требования каждого типа.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Поддерживает дробные числа (например, 3.14)
Безопасен для работы с очень большими целыми числами (больше 2^53 - 1)
Требует добавления суффикса 'n' при литеральном объявлении (например, 123n)
Можно использовать с методом Math.round()
Имеет ограничение по точности из-за представления в формате IEEE 754
Не поддерживает операции с обычными числами без явного преобразования
bigint
number
number
bigint
number
bigint
Сообщения
Проверить
Показать подсказку

5. Вычисли значение

id: 40627_bigint_05_give

Проанализируйте приведённый фрагмент кода на TypeScript, в котором используются переменные типа bigint. Вычислите значение выражения и введите результат в виде целого числа. Обратите внимание на приоритет операций и правила работы с целыми числами произвольной длины. Введите только число, без суффикса 'n' и дополнительных символов.

Что должно получиться?
let a = 10n;
let b = 5n;
let c = 2n;
let result = a + b * c;
Сообщения
Проверить
Показать подсказку

6. Допустимые операции

id: 40627_bigint_06_sort

Перед вами список выражений и операций с использованием типа bigint в TypeScript. Распределите их по двум категориям: 'допустимо' (корректные операции, которые скомпилируются и выполнятся) и 'вызовет ошибку компиляции' (некорректные операции, которые TypeScript не позволит скомпилировать). Обратите внимание, что тип bigint несовместим с типом number в арифметических операциях без явного преобразования.

Перетяните элементы в соответствующие блоки
Допустимо
Вызовет ошибку компиляции
10n + 5n
10n + 5
BigInt(10) + 5n
10n / 3n
10n * 2
BigInt(10) * BigInt(5)
10n ** 3
10n % 3n
Сообщения
Проверить
Показать подсказку

TypeScript: компиляция и запуск

id: 40627_compiler

Познакомьтесь с BigInt — типом для работы с по-настоящему огромными целыми числами, которые не помещаются в обычный number. В этом примере вы увидите, как стандартные числа теряют точность после определенного порога и как BigInt спасает ситуацию. Попробуйте изменить значения, возвести гигантские числа в степень или создать BigInt из очень длинной строки. Обязательно проверьте, что произойдет, если попытаться сложить bigint и number напрямую — TypeScript этого не допустит!

TS
Запустить тренажёр (TypeScript)
НайтиКурс.Ру