ค้นหาเว็บไซต์

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(...)