I am trying to separate my typescript classes in separate files using internal modules. However, the main.ts file will not load or recognize the sub modules.
To compile several .ts files into one big .js file using a VS Code task, you need to remove the 'args' from tasks.json and add the "out" argument to tsconfig.json
tasks.json
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"showOutput": "silent",
"problemMatcher": "$tsc"
}
tsconfig.json
{
"compilerOptions": {
"sourceMap": true,
"out": "myapp.js"
}
}
Note: When input files are specified on the command line, tsconfig.json files are ignored.
main.ts
/// <reference path="car.ts" />
var c = new Car("red");
car.ts
class Car {
color: string;
constructor(color: string) {
this.color = color;
console.log("created a new " + color + " car");
}
}
tsconfig.json
{
"compilerOptions": {
"sourceMap": true,
"outFile": "main.js"
},
"files": [
"main.ts",
"car.ts"
]
}
tasks.json
Kokodoko: I finally found the problem! You have to OMIT the "args" option inside "tasks.json", only then will the arguments in tsconfig.json be used! I found the answer here: github.com/Microsoft/typescript/wiki/tsconfig.json. It says: When input files are specified on the command line, tsconfig.json files are ignored
For further information about Modules, don't forget to have a look at the TypeScript Handbook