node.js - การส่งออกโมดูลในไทพ์สคริปต์
ฉันเป็นมือใหม่ใน TypeScript ฉันกำลังทำงานกับ Node.js 5.10.1 และ tsc 1.8.9 ฉันกำลังพยายามสร้างไฟล์ ts ง่ายๆ ที่มีฟังก์ชันที่ฉันสามารถใช้งานได้
เนื่องจากฉันกำลังใช้โมดูลภายนอกและเนื่องจากแอปของฉันเป็นแอปที่ใช้ Node.js ฉันจึงกำลังใช้โมดูลไลบรารีภายนอก typescript-require
นี่คือไฟล์ my-util.ts ของฉัน:
"use strict";
var fs = require('fs');
export module MyUtil {
export function isFileReadable(filePath:string, callback:Function) {
fs.access(filePath, fs.R_OK, (err) => {
callback(err, null);
});
}
}
ตอนนี้... ในไฟล์ ts หลักซึ่งตอนนี้.. ว่างเปล่า ผมต้องการเรียกใช้ไฟล์ my-util.ts และใช้ฟังก์ชัน isFileReadable
ฉันควรแก้ไขอย่างไรเพื่อเพิ่มการส่งออกให้กับโมดูล MyUtil? ฉันจะเรียกใช้งานมันอย่างไร?
คำตอบ #1
ผมขอแนะนำให้ส่งออกมันเป็นคลาสที่มีเมธอดแบบสแตติก โมดูลในตอนนี้ถูกออกแบบมาสำหรับไฟล์ .d.ts มากกว่า เดิมทีมันถูกใช้สำหรับโมดูลโดยทั่วไปก่อนที่มาตรฐาน es2015 จะมาถึง คำตอบต่อไปนี้สมมติว่าคุณกำลังคอมไพล์โค้ด TypeScript ของคุณทั้งหมดอย่างถูกต้อง
ลองนี่แทน:
"use strict";
var fs = require('fs');
export class MyUtil {
static isFileReadable(filePath:string, callback:Function) {
fs.access(filePath, fs.R_OK, (err) => {
callback(err, null);
});
}
}
จากนั้นเพื่อใช้งานมัน (โดยใช้การนำเข้าโหนดมาตรฐาน) คุณจะทำดังนี้:
var util = require('./my-util').MyUtil;
util.isFileReadble(...)
การใช้การนำเข้า ES6 คุณจะทำดังนี้:
import {MyUtil} from './my-util';
MyUtil.isFileReadble(...)
