https://github.com/notacat1/large-number
The project is a Large Number class for working with long integers in TypeScript. The class implements basic arithmetic operations (addition, subtraction, multiplication and division) without using the built-in BigInt type. Supports working with negative numbers.
https://github.com/notacat1/large-number
bignumber jest typescript
Last synced: about 1 month ago
JSON representation
The project is a Large Number class for working with long integers in TypeScript. The class implements basic arithmetic operations (addition, subtraction, multiplication and division) without using the built-in BigInt type. Supports working with negative numbers.
- Host: GitHub
- URL: https://github.com/notacat1/large-number
- Owner: NotACat1
- Created: 2024-09-11T09:53:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-11T12:35:53.000Z (over 1 year ago)
- Last Synced: 2025-02-05T22:38:30.785Z (over 1 year ago)
- Topics: bignumber, jest, typescript
- Language: TypeScript
- Homepage:
- Size: 146 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Large Number


## Описание
Проект представляет собой класс `LargeNumber` для работы с длинными целыми числами в языке TypeScript. Класс реализует основные арифметические операции (сложение, вычитание, умножение и деление) без использования встроенного типа `BigInt`. Поддерживает работу с отрицательными числами.
## Установка
### Установка Node.js и npm
Для работы с проектом требуется Node.js и npm. Следуйте этим шагам для установки:
1. **Загрузите и установите Node.js:**
Перейдите на [официальный сайт Node.js](https://nodejs.org/en/download/package-manager) и загрузите установочный пакет для вашей операционной системы. Выберите рекомендованную версию LTS (долгосрочная поддержка) для стабильности.
- **Windows/macOS**: Загрузите установочный файл и следуйте инструкциям мастера установки.
- **Linux**: Вы можете использовать менеджер пакетов вашей системы для установки Node.js. Например:
```bash
# Для Debian/Ubuntu
sudo apt update
sudo apt install nodejs npm
# Для CentOS
sudo yum install nodejs npm
```
2. **Проверьте установку:**
После установки Node.js и npm проверьте их версии, чтобы убедиться, что всё установлено правильно:
```bash
node -v
npm -v
```
Команды должны вернуть версии Node.js и npm.
3. **Клонируйте репозиторий и установите зависимости:**
После установки Node.js и npm, выполните следующие шаги:
```bash
git clone https://github.com/NotACat1/Large-Number.git
cd Large-Number
npm install
```
Команда `npm install` установит все зависимости проекта, указанные в `package.json`.
## Использование
### Создание объекта
```typescript
import { LargeNumber } from '@utils/LargeNumber';
// Создание объекта с длинным числом
const num1 = new LargeNumber('12345678901234567890');
const num2 = new LargeNumber('-98765432109876543210');
```
### Арифметические операции
#### Сложение
```typescript
const resultAdd = LargeNumber.add(num1, num2);
console.log(resultAdd.toString()); // Выводит результат сложения
```
#### Вычитание
```typescript
const resultSub = LargeNumber.subtract(num1, num2);
console.log(resultSub.toString()); // Выводит результат вычитания
```
#### Умножение
```typescript
const resultMul = LargeNumber.multiply(num1, num2);
console.log(resultMul.toString()); // Выводит результат умножения
```
#### Деление
```typescript
const resultDiv = LargeNumber.divide(num1, num2);
console.log(resultDiv.toString()); // Выводит результат деления
```
## Скрипты
Проект включает несколько скриптов для удобства разработки и управления проектом. Все скрипты указаны в секции `scripts` файла `package.json`. Вот их описание:
### `prepare`
```bash
npm run prepare
```
Этот скрипт устанавливает Husky хуки. Husky используется для автоматической проверки кода перед коммитами. Он выполняется автоматически при установке зависимостей.
### `lint`
```bash
npm run lint
```
Этот скрипт запускает ESLint для проверки файлов на наличие ошибок и предупреждений. Он проверяет все файлы с расширениями `.js` и `.ts` в папке `src`.
### `lint:fix`
```bash
npm run lint:fix
```
Этот скрипт запускает ESLint для исправления автоматически исправимых проблем в коде. Как и `lint`, он проверяет файлы с расширениями `.js` и `.ts` в папке `src`.
### `prettier:check`
```bash
npm run prettier:check
```
Этот скрипт проверяет файлы на соответствие правилам форматирования, установленным Prettier. Он проверяет все файлы с расширениями `.js` и `.ts` в папке `src`.
### `prettier:fix`
```bash
npm run prettier:fix
```
Этот скрипт автоматически форматирует файлы в соответствии с правилами Prettier. Он применяет форматирование к файлам с расширениями `.js` и `.ts` в папке `src`.
### `lint-staged`
```bash
npm run lint-staged
```
Этот скрипт запускает lint-staged, который проверяет только измененные файлы перед коммитом. Это помогает ускорить процесс проверки кода и обеспечить его соответствие стандартам.
### `build`
```bash
npm run build
```
Этот скрипт выполняет сборку проекта. Он компилирует TypeScript код в JavaScript и заменяет пути алиасов с помощью `tsc-alias`.
### `test`
```bash
npm run test
```
Этот скрипт запускает тесты с помощью Jest. Убедитесь, что все тесты проходят успешно перед коммитом кода.
### `start`
```bash
npm run start
```
Этот скрипт запускает скомпилированный проект, исполняя файл `dist/main.js`. Используется для запуска приложения.
### `dev`
```bash
npm run dev
```
Этот скрипт запускает проект в режиме разработки с помощью `nodemon`, который автоматически перезапускает приложение при изменениях в исходных файлах.
## Вклад
Если вы хотите внести вклад в проект, пожалуйста, создайте `pull request`.