Именование файлов в Nest. js - PullRequest
1 голос
/ 07 мая 2020

Этот вопрос касается стиля кода в Nest js. Эта структура предлагает именовать файлы строчными буквами и поперек точки.

Пример:

файл user.service.ts

export class UserService {
}

другой файл

import { UserService } from './user.service'

В большинстве случаев каждый файл содержит один класс. Я считаю удобным экспортировать этот класс по умолчанию, а затем импортировать файл с тем же именем

файл UserService.ts

export default class UserService {
}

другой файл

import UserService from './UserService'

Потому что это быстрее и проще.

Не могли бы вы мне поспорить, почему я не должен этого делать? Также я не понимаю, почему единственный объект в файле не экспортируется по умолчанию. Вам комфортно работать с именами файлов в Nest JS?

UPD. Еще один вопрос: есть ли у меня название класса, состоящее из нескольких слов. Например «UserRoleService». Как мне назвать этот файл?

userrole.service.ts

user-role.service.ts

user_role.service.ts

user.role.service.ts

Выглядит странно и нечитабельно. Я думаю, CamelCase был бы предпочтительнее, но мы вернемся к тому, с чего начали

1 Ответ

2 голосов
/ 07 мая 2020

Это очень самоуверенный вопрос, заслуживающий самоуверенного ответа.

Имена файлов

Имена файлов разделены по нескольким причинам.

1) это то, как Angular это делает, а Nest вдохновлен Angular

2) это означает, что ОС, которые обрабатывают имена файлов в верхнем и нижнем регистре как одно и то же, не путаются (например, MacOS)

3) это дает разработчику удобную точку разделения в имени файла для посмотрите на

4) некоторые инструменты в редакторах файлов могут отображать разные значки в зависимости от имени файла. .ts может не означать ничего, кроме файла машинописного текста, но .service.ts означает служебный файл, написанный на машинописном тексте. (Тема значка материала с VSCode дает разные значки)

Экспорт

Другая проблема, которую вы поднимаете, называется по сравнению с экспортом по умолчанию. В них нет большой разницы, кроме того, как работает импорт, но важно признать, что с именованным экспортом (export class <ClassName>) вы должны импортировать этот класс в другой файл с тем же именем. (хотя вы можете дать ему псевдоним, используя as). С default exports вы можете экспортировать что угодно по умолчанию один раз для каждого файла, но вы можете импортировать это в другой файл с любым именем. Так что, если хотите, можете иметь export default MyClass, а затем import SomethingNotRelatedToTheName from path/to/MyClass.

Если вы серьезно относитесь к этому, вы всегда можете переписать и переименовать имена файлов и экспортируемые файлы, но не ожидайте, что Nest изменит это за вас, поскольку это самоуверенный фреймворк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...