Typescript中的私有函数

时间:2016-12-20 22:42:24

标签: typescript2.0

请注意,我已经检出this question,但答案似乎不正确。

如果我想在常规JavaScript中使用私有方法(答案建议不可能),我会做这样的事情:

function myThing() {
    var thingConstructor = function(someParam) {
        this.publicFn(foo) {
           return privateFn(foo);
        }
        function privateFn(foo) {
           return 'called private fn with ' + foo;
        }
    }
}

var theThing = new myThing('param');
var result = theThing.publicFn('Hi');//should be 'called private fn with Hi'
result = theThing.privateFn; //should error

我试图弄清楚在TypeScript中封装私有函数的语法是什么。如果事实证明你没有问题,那很好,但考虑到旧问题中的答案错误地表明你无法在普通的JavaScript中创建私有方法,我不愿意接受那些作为权威的答案。

1 个答案:

答案 0 :(得分:0)

因此,事实证明它就像将方法标记为私有一样简单。我缺少的是能够使用该方法,您需要使用this关键字。

所以

export class myThing {
   constructor(){}
   publicFn(foo) {
        return this.privateFn(foo);
   }
   private privateFn(foo) {
        return 'called private fn with ' + foo;
   }
}