2013-06-30 2 views

ответ

0

Я не рекомендую это делать. Но вы всегда можете зайти в JavaScript, и машинопись не будет знать:

class Test{ 
    member:string; 

    visible(){ 
     this.member='visible'; 
    } 
} 

(<any>Test.prototype).notvisible = function(){ this.member ='notvisible'; } 

Try it

В качестве альтернативы можно отметить функцию как частные.

class Test{ 
    member:string; 

    visible(){ 
     this.member='visible'; 
    } 
    private notvisible(){ 
     this.member ='notvisible'; 
    } 
} 
+1

Проблема с« частной душевностью »заключается в том, что в машинописном тексте нет защищенного. –

3

Вы можете использовать интерфейс для описания сокращенного контракта. Все, что не описано в интерфейсе, будет эффективно скрыто от автозаполнения, даже если оно доступно в классе. Это дает вам гибкость, чтобы решить, когда вы хотите получить доступ к собственности.

interface IReducedInterface { 
    name: string; 
} 

class ExpandedClass implements IReducedInterface { 
    public name: string; 
    public hideFromIntellisense: string; 
} 

var example: IReducedInterface = new ExpandedClass(); 

Если вы наберете example. он предложит name, но не hideFromIntellisense.

Вам не нужно явно реализовывать IReducedInterface, поскольку TypeScript структурно типизирован.

Смежные вопросы