importar - module.exports em typescript
alguém sabe como fazer um module.exports?
Eu tentei algumas maneiras diferentes, acabando com
export class Greeter {}
que irá compilar para
exports.Greeter = Greeter;
Mas o que eu realmente quero é isto:
exports = Greeter;
Para que eu possa usá-lo assim:
import { Greeter } from "greeter";
const greeter = new Greeter();
e não
import { Greeter } from "greeter";
const greeter = new Greeter.Greeter();
Isso é possível com Typescript?
Resposta #1
Você pode exportar uma única classe em TypeScript assim:
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;
E aqui está como isso vai ser usado:
var Person = require('./dist/commonjs/Person.js');
var homer = new Person('Homer', 'Simpson');
var name = homer.getFullName();
console.log(name); // Homer Simpson
Para ser completo, aqui está meu tsconfig.json (estou usando TypeScript v2.0.3):
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"outDir": "dist/commonjs",
"rootDir": "src/ts",
"target": "es5"
},
"exclude": [
"dist",
"node_modules"
]
}
Resposta #2
Isso agora foi implementado e está pronto no TypeScript 0.9 :)
