ในขณะที่ขลุกอยู่กับ typescript ฉันพบว่าคลาสของฉันภายในโมดูล (ใช้เป็นเนมสเปซ) ไม่สามารถใช้ได้กับคลาสอื่นเว้นแต่ฉันจะเขียนexport
คีย์เวิร์ดก่อนหน้านั้นเช่น
module some.namespace.here
{
export class SomeClass{..}
}
ตอนนี้ฉันสามารถใช้รหัสด้านบนดังนี้:
var someVar = new some.namespace.here.SomeClass();
อย่างไรก็ตามฉันแค่สงสัยว่าเหตุใดจึงใช้คำหลักนี้ตรงข้ามกับการใช้public
คำหลักที่ใช้ในระดับวิธีการเพื่อแสดงว่าวิธีการหรือคุณสมบัติควรสามารถเข้าถึงได้จากภายนอก ทำไมไม่ใช้กลไกเดียวกันนี้เพื่อทำให้คลาสและอินเทอร์เฟซอื่น ๆ มองเห็นได้จากภายนอก?
สิ่งนี้จะให้รหัสผลลัพธ์เช่น:
module some.namespace.here
{
public class SomeClass{..}
}