JavaScript是否可能在类中分离接口和实现

时间:2018-11-07 12:15:56

标签: javascript oop

在javascript中,如果我不使用类,则可以执行以下操作:

const Module = (function(){
    const myArray = [];
    const myObject = {};
    return {    //this is my interfaces
        myArray,
        myObject,

        myMethod1,
        myMethod2,
        myMethod3,
        myMethod4,

        myMethod99,
    }

    function myMethod1(){}

    function myMethod2(){}

    function myMethod3(){}

    function myMethod4(){}

    function myMethod99(){} 

})

这为我提供了某种结构,让我在顶部列出了所有可公开使用的属性和方法,这样可以更轻松地在模块之间导航并查看模块中有哪些可用的东西,并且也更容易导航至在IDE中使用Visual Studio Code等IDE的Intellisense功能时,只需转到模块,单击要转到的方法,然后按F12,即可进入该功能。

现在在javascript中,类的情况不同:

class Module{

    constructor(){}

    myMethod1(){}   
    myMethod2(){}   
    myMethod3(){}   
    myMethod4(){}

    myMethod99(){}

}

在这种情况下,我无法分离接口和实现,因此很难浏览代码。 Javascript是否有可能处理这种情况?

1 个答案:

答案 0 :(得分:0)

JavaScript中还没有私有成员。存在a proposal包含此功能,虽然它处于阶段3,但尚未着陆。

JavaScript中也没有接口(因为几乎没有类型系统),并且将来不太可能添加接口。

考虑使用TypeScript,它具有这两个功能。