Typescript의 module.exports
-
12-12-2019 - |
문제
누군가가 module.exports를 수행하는 방법을 알고 있습니까?
로 끝나는 몇 가지 다른 방법을 시도했습니다.
export class Greeter {}
.
로 컴파일 할
exports.Greeter = Greeter;
.
그러나 내가 정말로 원하는 것은 이것이 다음과 같습니다 :
exports = Greeter;
.
이처럼 사용할 수 있습니다 :
import { Greeter } from "greeter";
const greeter = new Greeter();
.
및
가 아닙니다import { Greeter } from "greeter";
const greeter = new Greeter.Greeter();
.
typescript와 함께 사용할 수 있습니까?
해결책 2
이제 이제 구현되었으며 Typescript 0.9 :)
다른 팁
typescript에서 단일 클래스를 다음과 같이 내보낼 수 있습니다.
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;
.
여기에 그것이 사용되는 방법은 다음과 같습니다.
var Person = require('./dist/commonjs/Person.js');
var homer = new Person('Homer', 'Simpson');
var name = homer.getFullName();
console.log(name); // Homer Simpson
.
완료되면 여기에 내 tsconfig.json (typescript v2.0.3을 사용하고 있습니다) :
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"outDir": "dist/commonjs",
"rootDir": "src/ts",
"target": "es5"
},
"exclude": [
"dist",
"node_modules"
]
}
. 그래서 나는 해결 방법을 발견했다고 생각합니다..TS 파일의 괄호 안에 키워드 '모듈'을 래핑합니다.
declare var module: any;
(module).exports = MyClass;
.
생성 된 JavaScript 파일은 똑같습니다.
(module).exports = MyClass;
.
var 모듈을 직접 선언하는 것보다 낫고 "NoreferRer"> node.d.ts 정의 파일 및 스틱을 다운로드하십시오.Typescript 파일과 동일한 디렉토리에 있습니다.다음은 node.d.ts가 동일한 디렉토리에 가정하는 Express Node.js 라우팅 파일의 전체 샘플입니다.
/// <reference path="node.d.ts" />
var SheetController = function () {
this.view = function (req, res) {
res.render('view-sheet');
};
};
(module).exports = SheetController;
.
i 그런 다음 SheetController 및 (Express를 사용하여)보기 방법을 할당 할 수 있습니다.
var sheetController = new SheetController();
app.get('/sheet/view', sheetController.view);
.
이 패턴을 사용하여 키워드를 이스케이프 할 수 있습니다.
declare var reservedkeyword: any;
(reservedkeyword).anything = something;
. 추악하고 해킹이 있지만 여전히 할 수 있습니다 :
class Greeter {}
declare var exports:any;
exports = Greeter;
.
- 컴파일 :
var Greeter = (function () {
function Greeter() { }
return Greeter;
})();
exports = Greeter;
. 제휴하지 않습니다 StackOverflow