2016-03-02 3 views
0

Этот вопрос просто выскочил в моей голове, но я хочу, чтобы сделать занятия частные каким-то образом в машинописи ... Так что это то, что происходитСоздание класса частного?

В моей папке Машинопись/круг/circle.ts У меня есть это:

class Circle { 
    PI:number = 3.14; 
    radius:number = 0; 
    constructor(public radiusInput:number){ 
    this.radius = radiusInput 
    } 
    getArea(){ 
    return this.PI*(this.radius*this.radius); 
    } 
    getCircumfrance(){ 
    return this.PI*2*this.radius; 
    } 
} 
var fourCircle:Circle = new Circle(5); 

Теперь, когда я перехожу в другую папку Typcript/enums/enums.ts, я могу на самом деле создать экземпляр класса Circle. Я не хочу этого .. Я хочу как-то сделать класс Circle частным. Как вы это достигаете в машинописном тексте?

+0

Вы обернули его в [модуль] (http://www.typescriptlang.org/Handbook#modules)? – Igor

+0

Нет, что это? Он доцент говорит на веб-сайте .. – amanuel2

ответ

2

Оберните свой класс (и другие типы) в modules. Это логическая организация ваших типов в ваших файлах. Теперь вы не можете ссылаться на него из внешнего файла, если не добавить ключевое слово export в определение класса. module очень похож на namespace в C#.

module MyTypes { 
class Circle { 
    PI:number = 3.14; 
    radius:number = 0; 
    constructor(public radiusInput:number){ 
    this.radius = radiusInput 
    } 
    getArea(){ 
    return this.PI*(this.radius*this.radius); 
    } 
    getCircumfrance(){ 
    return this.PI*2*this.radius; 
    } 
} 
} 
+0

О, igor спасибо! Но у меня есть только один крошечный вопрос. Как вам нравится, например, вы решили, что хотите этот класс в другом месте. Как ты это используешь? Это импорт? Большое спасибо – amanuel2

+0

Если вы хотите создать экземпляр этого типа, вы можете добавить ключевое слово 'export', чтобы оно стало' export class Circle'. Если имя модуля отличается, вам нужно либо импортировать этот тип в верхней части файла, либо использовать полное имя модуля, например 'new MyTypes.Cicrle (12);' – Igor

+1

О, да, точно так же, как Java. Большое спасибо! – amanuel2

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