2016-03-02 70 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); 

現在,當我去我的其他文件夾打字稿/枚舉/ enums.ts,我可以actualy創建Circle類的一個實例。我不想那樣..我想以某種方式使Circle類變爲私人。你如何在打字稿中做到這一點?

+0

你把它包裝在[module](http://www.typescriptlang.org/Handbook#modules)中嗎? – Igor

+0

不是什麼?它劑量告訴網站內.. – amanuel2

回答

2

包裝你的類(和其他類型)的modules。這是您文件中類型的邏輯組織。現在您不能從外部文件中引用它,除非您將export關鍵字添加到類定義中。 module與c#中的namespace非常相似。

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

如果你想創建一個類型,因此它成爲'出口類Circle'可以添加'export'關鍵字的一個實例。如果模塊名稱不同,則必須將該類型導入到文件頂部,或者使用完全限定的模塊名稱,如'new MyTypes.Cicrle(12);' – Igor

+1

哦,就像Java一樣。再次感謝! – amanuel2