Как создать корректный shared проект?

Как организовать три отдельных проекта на TypeScript - сервер, веб-приложение на Vue.js и общий проект с общими типами, интерфейсами и данными, аналогично тому, как это делается в C#?
  • 23 февраля 2024 г. 12:28
Ответы на вопрос 2
Для создания корректного shared проекта с общими типами, интерфейсами и данными в TypeScript вы можете создать отдельную папку в вашем общем репозитории для хранения этих файлов. 

1. Создайте shared папку в корне вашего проекта и создайте в ней файлы с общими типами, интерфейсами и данными. Например, вы можете создать файл sharedTypes.ts и определить в нем все общие типы и интерфейсы.
2. Далее, в каждом отдельном проекте (сервер, веб-приложения на Vue.js) вы можете импортировать эти общие типы из sharedTypes.ts. Например, для импорта типов в TypeScript вы можете использовать import:
```typescript
import { CommonType } from '../../shared/sharedTypes';
```
3. Убедитесь, что пути импорта указаны верно и что общие типы корректно доступны в каждом проекте.
4. В качестве альтернативы, вы также можете использовать npm пакеты для организации общих типов и интерфейсов. Вы можете создать отдельный npm пакет с общими типами и интерфейсами и устанавливать его в каждом проекте как зависимость.

Таким образом, вы сможете организовать общий проект с общими типами, интерфейсами и данными в TypeScript, аналогично тому, как это делается в C#.
Здравствуйте. То что вы спрашиваете - это тема для толстой книги например )) 

Я как раз сейчас очень интересуюсь такими решениями. Идея именно в том, что есть бэкэнд, фронтэнд, И ОБЩИЙ КОД.

Общий код - это:

* строгое объявление типов сообщений
* определение процедур API с указанием их типов сообщений
* абстракции форм для валидации инпута как на клиенте, так и на сервере
* то, что в процессе разработки по каким-то причинам было перенесено с сервера на клиент или наоборот
* что-то еще

Идея очень близка к grpc и Метеору, но не оно.

В общем есть много идей и даже наработок.

Если интересно - предлагаю сконнектиться и пообщаться на эту тему, как насчет?
Похожие вопросы