如何在我的方法和与typescript的接口中创建一个私有类?

时间:2014-07-29 11:23:13

标签: javascript typescript

我的应用程序中有一个类

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

    }
}

如何设置接口文件以及如何为此设置我的方法,以便doTask1是公共的并且doTask2是私有的?

2 个答案:

答案 0 :(得分:1)

  

如何设置界面文件

Javascript没有严格的接口see this stack overflow question

  

如何为此装饰我的方法,以便doTask1是公共的,doTask2是私有的?

在Javascript中,公共和私有的概念并不存在,尽管许多人遵循对变量或函数名称(例如_foo)的附加和下划线的约定,以让其他人知道它的意思是私人的。但是,您可以控制对Douglas Crockford编写的变量here is a good explanation of that的访问。

修改

对于TypeScript,我会结帐MSDN article on interfaces,我认为this stack overflow question与您关于私人功能的问题相关。

答案 1 :(得分:0)

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

interface IMyClass {
    doTask1(): void;
}

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

    }
}


var instance: IMyClass = new MyClass();
instance.doTask1(); // Ok
instance.doTask2(); // Error 

可运行示例:http://bit.ly/Uzkv7V

顺便说一句,你应该像这样构建你的课程:

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

    }
}