TypeScript - использовать PascalCasing или camelCasing для имен модулей?

Мне интересно, если я должен использовать PascalCasing или же camelCasing для имен своих модулей до сих пор я всегда использовал PascalCasing, то есть: Ayolan.Engine.Rendering вместо Ayolan.engine.rendering (Я сохраняю PascalCasing для контейнера, так как хочу, чтобы глобальное имя объекта было Ayolan и не ayolan).

Я не нашел никакого заголовка по этому вопросу, нашел эту тему от 3 лет назад, но не очень полезен.

Мне интересно, потому что я работаю с разработчиками Java и для них имеет больше смысла использовать camelCasing, но это не то, что я видел до сих пор с TS.

2 ответа

Решение

В TypeScript мы используем те же стандарты, что и JavaScript, потому что мы работаем со многими библиотеками JavaScript (и, возможно, также используем код JavaScript).

Поэтому мы предпочитаем PascalCase для модулей и классов, членами которых являются camelCase.

module ExampleModule {
    export class ExampleClass {
        public exampleProperty: string;

        public exampleMethod() {

        }
    }
}

Единственное другое правило стиля, о котором я могу думать, это то, что константы - это ALL_UPPER.

Вы заметите, что это прекрасно сочетается со следующим кодом:

Math.ceil(Math.PI);

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

Примечание. Внутренние модули являются пространствами имен. Следующая версия TypeScript ориентирована на внешние модули из ECMAScript 6, которые не являются пространствами имен.

Microsoft не опубликовала руководство по именованию для внутренних модулей в TypeScript.

Аргументы в пользу PascalCase

Внутренний модуль подобен классу с только статическими членами:

module MyLib {
    export function f1() {
    }
    export function f2() {
    }
    // ...
}

Языки, использующие регистр паскалей для пространств имен: C#, PHP.

Аргументы в пользу camelCase

Имя в случае верблюда напоминает руководство по стилю Google для JSON:

Имена свойств должны быть в виде верблюжьей строки ascii.

… Но внутренний модуль не является объектом JSON.

Языки, которые используют случай верблюда для пространств имен: (Не Java, которая использует строчные буквы).

Другие вопросы по тегам