tsconfig.json
{
"compilerOptions": {
"lib": ["es2017"],
"module": "commonjs",
"target": "es2017", // node 8
"strict": true,
"strictPropertyInitialization": false, // should be true
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"allowUnusedLabels": false,
"allowUnreachableCode": false,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": false, // should be true
"importsNotUsedAsValues": "remove", // should be error
"types": ["inversify", "mocha", "reflect-metadata", "restify"],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"removeComments": true
}
}