Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 - Fatal编程技术网

Javascript 如何在我的方法和与typescript的接口中使类私有?

Javascript 如何在我的方法和与typescript的接口中使类私有?,javascript,typescript,Javascript,Typescript,我的申请表上有一个等级 class MyClass { doTask1 = () => { doTask2(); } doTask2 = () => { } } 我如何设置一个接口文件,如何为此修改我的方法,使doTask1是公共的,而doTask2是私有的 如何设置接口文件 Javascript没有严格的接口 我如何装饰我的方法,使doTask1是公共的,而doTask2是私有的 在Javascript中,公共和私有的概念并不存在

我的申请表上有一个等级

class MyClass {
    doTask1 = () => {
        doTask2();
    }
    doTask2 = () => {

    }
}
我如何设置一个接口文件,如何为此修改我的方法,使doTask1是公共的,而doTask2是私有的

如何设置接口文件

Javascript没有严格的接口

我如何装饰我的方法,使doTask1是公共的,而doTask2是私有的

在Javascript中,公共和私有的概念并不存在,尽管许多人遵循在变量或函数名(如
\u foo
)后面加下划线的惯例,让其他人知道它是私有的。但是,您可以控制对Douglas Crockford编写的变量的访问

编辑


特别是对于TypeScript,我要签出,我认为这与您关于私有函数的问题有关。

记住-接口只能包含公共方法:

interface IMyClass {
    doTask1(): void;
}

class MyClass implements IMyClass {
    doTask1 = () => {
        this.doTask2();
    }
    doTask2 = () => {

    }
}


var instance: IMyClass = new MyClass();
instance.doTask1(); // Ok
instance.doTask2(); // Error 
可运行示例:

顺便说一句,你可能应该这样构造你的类:

class MyClass implements IMyClass {
    doTask1() {
        this.doTask2();
    }
    private doTask2() {

    }
}

对不起,我的意思是我使用的是有接口和类的Typescript。对,我是根据标题选择的。我从未使用过Typescript,但我知道它可以编译成普通的旧JS,所以我想这可能会有所帮助