DevGang
Авторизоваться

3 преимущества OOP-подхода в Express.js с TypeScript

Что дает TypeScript

TypeScript обеспечивает строгую систему типизации для проектов JavaScript и избавляет программистов от ошибок при написании кода. Кроме того, он позволяет использовать стиль объектно-ориентированного программирования (OOP), предоставляя классы «Interface» и «Abstract».

Не только для клиентской части

Использование TypeScript стало популярным на стороне клиента, но оно также применимо к серверному JavaScript. Express.js — это веб-фреймворк Node.js, среды выполнения, которая позволяет кодам JavaScript работать на стороне сервера, а TypeScript также используется с Express.

Общий стиль Express

Типичный экспресс-код написан в стиле функционального программирования, так как он сразу принимает функцию обратного вызова.

const express = require('express');
const app = express();
app.get('/', (req, res) => {
  res.send('Hello world');
});

Но когда вы используете TypeScript, вы можете использовать стиль на основе классов и увидеть несколько его достоинств.

3 преимущества использования TypeScript с OOP

Вот положительные преимущества использования OOP-подхода:

  1. Уменьшите количество объявлений типов
  2. Используйте шаблон проектирования
  3. Используйте декораторы

Уменьшите количество объявлений типов

Когда вы пишете контроллеры, вам нужно экспортировать все объявления переменных и типов. Наличие класса контроллера может объединить их.

Вот пример:

controller/users.ts

export class UsersController {
  public async createUser(req: Request, res: Response) {
    const user = new User(req.body);
    await user.save();
    res.status(201).send(user);
  }

  public async fetchUsers(req: Request, res: Response) {
    const users = await User.find({});
    res.status(200).send(users);
  }
}

Маршрутизатор должен знать, что контроллер — это UsersController, и определить его тип.

routes/users.ts

import { Router } from 'express';
import { UsersController } from '../controllers/users';

const router = Router();
const usersController = new UsersController();
router.get('/', usersController.fetchUsers);
router.get('/create', usersController.createUser);

Вы также можете создать класс маршрутизатора.

Шаблоны проектирования

Шаблоны проектирования — это распространенные шаблоны решений при разработке программного обеспечения, они идут с OOP.

  • Шаблоны проектирования GoF
  • Шаблон проектирования DAO

Декораторы

Декоратор — это объявление особого типа, которое может быть присоединено к объявлению класса, методу, методу доступа, свойству или параметру.
Декораторы — это специальность TypeScript, основанная на подходе OOP. Например, вы можете выполнить некоторые процессы до создания экземпляра класса.
const Something = (constructor: Function) => {
  console.log('Some functions before the class instantiate');
}

@Something
class User {
  constructor(name: string) {
    console.log(`User ${name} is created`);
  }
}

const user1 = new User('user2');
const user2 = new User('user1');

Выход

Вы можете установить более одного декоратора.

Вывод

Вы можете максимально использовать OOP и уникальные функции TypeScript в Express. 
Вам также может понравиться Nest.js или Deno; Оба являются средами выполнения и изначально поддерживают TypeScript.

#TypeScript #JavaScript #NodeJS #Express
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу