在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的Intellisense,如Visual Studio Code,只需转到模块,单击要转到的方法,然后按F12,它将带您进入该功能。
现在javascript中的类不同的情况:
class Module{
constructor(){}
myMethod1(){}
myMethod2(){}
myMethod3(){}
myMethod4(){}
myMethod99(){}
}
在这种情况下,我无法分离界面和实现,使得难以浏览代码。有没有可能Javascript可以处理这种情况?
JavaScript中还没有私人会员。存在a proposal,其中包括此功能,虽然它处于第3阶段,但尚未降落。
JavaScript中也没有接口(因为几乎没有类型系统),并且将来不太可能添加一个接口。
考虑使用TypeScript,它具有这两个功能。