Since the configuration for your hosted bot might be different to the configuration on the hosting server (or on my local machine), never create Pull Requests for the main branch. I would suggest using the unstable branch
The prettier code formatter is used
Rule 1: Function and variable names in camelCase:
const NEWVARIABLE: string = ''; //BAD
const NewVariable: string = ''; //BAD
const newVariable: string = ''; //GOOD
function HelloWorld(): void { //BAD
function HELLOWORLD(): void { //BAD
function helloWorld(): void { //GOODRule 2: In class names, each beginning of a word is upper case:
class test { //BAD
class TEST { //BAD
class Test { //GOODRule 3: Always use template strings instead of string concatenation:
console.log('Hello ' + name); //BAD
console.log(`Hello ${name}`); //GOODRule 4: Always use single quotes for strings unless that would require to escape single quotes in the string:
console.log("Hello World"); //BAD
console.log('Hello World'); //GOOD
console.log('Hello, I\'m world'); //BAD
console.log("Hello, I'm world"); //GOODRule 5: Use two spaces:
//BAD:
if (someBoolean) {
console.log('true');
}
//GOOD:
if (someBoolean) {
console.log('true');
}Rule 6: Space between instruction (if, switch, …) and parenthesis. Space after curly brace, followed by line break. If no curly brace is required, then either on the same or on the next line:
if(someBoolean) //BAD
if (someBoolean) //GOOD
//BAD:
if (someBoolean)
{
}
//BAD:
if (someBoolean){
}
//GOOD:
if (someBoolean) {
}Rule 7: Add spaces before and after curly braces if statement is in one line:
const obj: {value: string} = {value: 'foo'}; //BAD
const obj: { value: string } = { value: 'foo' }; //GOODRule 8: Always use semicolons:
console.log('Hello World') //BAD
console.log('Hello World'); //GOODRule 9: Use semicolons in object types and interfaces; add semicolon also to last index
//BAD:
interface Human {
legs: number,
arms: number
}
//BAD:
interface Human {
legs: number;
arms: number
}
//GOOD:
interface Human {
legs: number;
arms: number;
}
const arr: { value: string, valueTwo: string }[] = [] //BAD
const arr: { value: string; valueTwo: string }[] = [] //GOODRule 10: Always add types; never use any unless it is unavoidable:
let someNumber = 54; //BAD
let someNumber: number = 54; //GOOD
const someBoolean = true; //BAD
const someBoolean: boolean = true; //GOOD
function helloWorld() { //BAD
function helloWorld(): void { //GOOD
[3, 2, 1].sort((a: number, b: number) => a > b ? 1 : -1); //BAD
[3, 2, 1].sort((a: number, b: number): number => a > b ? 1 : -1); //GOODRule 11: Use [], not Array<T>:
const array: Array<string> = ['Test']; //BAD
const array: string[] = ['Test']; //GOODRule 12: Always use three equal signs in comparisons:
if (a == b) //BAD
if (a === b) //GOOD
const bool: boolean = a == b //BAD
const bool: boolean = a === b //GOODRule 13: Use const whenever possible; never use var unless it is unavoidable:
var someNumber: number = 54; //BAD
let someNumber: number = 54; //BAD unless it is changed later
const someNumber: number = 54; //GOOD
//GOOD:
let someNumber: number = 54;
someNumber++;
//BAD:
let array: string[] = [];
array.push('hi');
//GOOD:
const array: string[] = [];
array.push('hi');
//BAD:
let obj: { value: string } = { value: 'foo' };
obj.value = 'bar';
//GOOD:
const obj: { value: string } = { value: 'foo' };
obj.value = 'bar';Rule 14: If-else without curly braces as well as Conditional (ternary) operators are permitted:
//GOOD:
if (someBoolean) console.log('someBoolean true');
else console.log('someBoolean false');
//GOOD:
if (someBoolean)
console.log('someBoolean true');
else
console.log('someBoolean false');
//GOOD:
if (someBoolean) {
console.log('someBoolean true');
} else {
console.log('someBoolean false');
}
console.log(someBoolean ? 'someBoolean true' : 'someBoolean false'); //GOOD but in this case…
console.log(`someBoolean ${someBoolean}`); //…would be betterRule 15: Never use lambda functions other than for very short operations:
//BAD:
client.on('message', (message: Message): void => {
switch (message) {
case 'Hello World':
message.channel.send('Hi!').catch(console.error);
break;
case 'Bye World':
message.channel.send('Bye!').catch(console.error);
break;
}
});
//GOOD:
client.on('message', onMessage);
function onMessage(message: Message) {
switch (message) {
case 'Hello World':
message.channel.send('Hi!').catch(console.error);
break;
case 'Bye World':
message.channel.send('Bye!').catch(console.error);
break;
}
}
[3, 2, 1].sort((a: number, b: number): number => a > b ? 1 : -1); //GOODRule 16: Use dot-notation, not [key]:
obj['foo']; //BAD
obj.foo; //GOOD