Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为现有JavaScript模块模式在Typescript中编写模块模式_Javascript_Typescript_Module Pattern_Revealing Module Pattern - Fatal编程技术网

如何为现有JavaScript模块模式在Typescript中编写模块模式

如何为现有JavaScript模块模式在Typescript中编写模块模式,javascript,typescript,module-pattern,revealing-module-pattern,Javascript,Typescript,Module Pattern,Revealing Module Pattern,我对Javascript和Typescript都是新手。我必须将Javascript代码迁移到Typescript中。下面是一个模块模式,它返回自身而不是公开私有方法和属性(如果我错了,请纠正我)。所以我不知道如何处理这种情况 var MySocket = (function () { function MySocket(location, openCallback, closeCallback, errorCallback) { //Code Goes Here

我对Javascript和Typescript都是新手。我必须将Javascript代码迁移到Typescript中。下面是一个模块模式,它返回自身而不是公开私有方法和属性(如果我错了,请纠正我)。所以我不知道如何处理这种情况

var MySocket = (function () {


    function MySocket(location, openCallback, closeCallback, errorCallback) {
        //Code Goes Here
    }



    MySocket.prototype.Open = function () {
        //Code Goes Here
    }

    MySocket.prototype.Close = function () {
        //Code Goes Here
    }



    return MySocket;
})();

这称为显示模块模式。您仍然可以在TypeScript中使用它。“现代”模式将删除IIFE和
return
语句,而将
export
修饰符添加到
MySocket

export function MySocket(location, openCallback, closeCallback, errorCallback) {
   //Code Goes Here
}

MySocket.prototype.Open = function () {
  //Code Goes Here
}

MySocket.prototype.Close = function () {
  //Code Goes Here
}
然而,这种方法的用法略有不同。ES6模块应使用
import
语句从其他ES6模块导入,而不仅仅是按名称引用变量:

import { MySocket } from './MySocket'

抱歉,它不起作用,如果我删除IIFE并返回,它不确定如何维护封装。我将其添加到名称空间并导出函数export,但不起作用。我以前试过。对于Es6模块,封装就是模块本身。如果您仍然将所有文件连接在一起,那么Typescript导出语法并不真正适合您的用例。我建议您阅读ES6模块的工作原理,以便更好地理解