module.exports in typescript
commonjs, import, typescript
Solution
You can export a single class in TypeScript like this:
class Person {
private firstName: string;
private lastName: string;
constructor(firstName: string, lastName: string) {
this.firstName = firstName;
this.lastName = lastName;
}
public getFullName() {
return `${this.firstName} ${this.lastName}`;
}
}
export = Person;
And here is how it's going to be used:
var Person = require('./dist/commonjs/Person.js');
var homer = new Person('Homer', 'Simpson');
var name = homer.getFullName();
console.log(name); // Homer Simpson
To be complete, here is my tsconfig.json (I am using TypeScript v2.0.3):
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"outDir": "dist/commonjs",
"rootDir": "src/ts",
"target": "es5"
},
"exclude": [
"dist",
"node_modules"
]
}
Problem
does somebody know how to do a module.exports? I tried some different ways ending up with ``` export class Greeter {} ``` which will compile to ``` exports.Greeter = Greeter; ``` But what I really want is this: ``` exports = Greeter; ``` So that I can use it like this: ``` import { Greeter } from "greeter"; const greeter = new Greeter(); ``` and not ``` import { Greeter } from "greeter"; const greeter = new Greeter.Greeter(); ``` Is this possible with Typescript?