CS
Над большинством проектов приходится работать сообща.
Ориентироваться и входить в одинаково написанный код само собой намного проще, чем копаться в куче, собранной из всего на свете.
А если на смену небольшим проектам придут проекты побольше, то и вовсе это может стать серьезной проблемой.
Так вот.
То, что переменные/функции/классы должны именоваться по их назначению - очевидно. Копнем глубже.
Для именования модулей/классов/интерфейсов используется (Upper)CamelCase:
class ItsMyClass
Название ts-файла, в котором содержится класс, должно повторять его наименование (компилятору, вообще говоря, без разницы, как называются сами файлы).
Для именования переменных и функций мы используем lowerCamelCase:
public myVar: number; public myFunction(): void {...}
Для именования констант мы используем заглавные буквы со знаком подчеркивания для разделения слов:
public const MY_CONST: number = 7; public readonly MY_CONST: number = 7;
Так как в ts нельзя использовать const в теле класса, то, если это не что-то глобальное, константы мы объявляем через readonly.
Катимся дальше.
Призываю у всех переменных, констант и функций писать модификаторы видимости: public, private, protected.
(У классов: private, protected.)
При этом, что касается приватных переменных (и только переменных!) в теле класса (то есть переменные внутри ф-й сюда не относятся), перед их именем ставим знак подчеркивания:
private _myPrivateVar: number;
Так же, крайне желательно ставить у всех переменных и функций их тип (в том числе тип void, вытрите слезы). Если по какой-то причине вы не можете определиться с типом или необходимо, чтобы он был динамическим, используйте тип any:
public someVar: any;
Это касается и итераторов, используемых в циклах.
for (let i: number = 0; i < N; i++)
И финальная боль:
- кавычки, неожиданно, только двойные;
- отступ - табуляция;
- в конце строки используем точку с запятой;
Ну и да. Писать следует с чувством, с толком, с расстановкой, отделяйте пустыми строками логические блоки внутри функций (и в других конструкциях), не бойтесь пробела.
public nameVar: <space> number; nameFunctionOne(): <space> number <space> {...} nameFunctionTwo(var: <space> number): <space> void <space> {...} if <space> (...) <space> {...} ... и тд. по аналогии