了解TypeScript封装

时间:2016-09-25 18:35:49

标签: javascript typescript

这就是我组织TypeScript文件的方式:

mean(BirthNumbers$V1)

来自C#,我的方法是根据文件夹结构创建名称空间。因此,MBZ文件夹中的所有内容都将具有名称空间“MBZ”,而Controls文件夹中的所有内容都将具有名称空间“MBZ.Controls”。这允许Controls文件夹中的所有内容隐式引用任何前一个文件夹中的任何内容。

所以,这是上述文件的一个例子:

Utilties.ts

MBZ (Folder)
    Utilities.ts
    Controls (Folder)
        Designer.ts
        Form.Ts

Designer.ts

namespace MBZ
{
    export function ProcessSelection()
    {
        // A Common Utility available to anything in the MBZ.* namespace
    }
}

Form.ts

namespace MBZ.Controls
{
    export module Designer
    {
        export function Initialize()
        {
            // Initialize Control
        }

        export function OnSubmit()
        {
            // Calls common utility
            ProcessSelection();
        }
    }
}

问题

根据我读过的所有内容,人们都说模块是要走的路,你应该明确地导入文件中需要的每个模块。这对我来说似乎很奇怪 - 使用上面的方法你永远不必明确地引用任何东西,除非你指的是在不同的命名空间链中的东西(就像在C#中一样)。

所以我的问题是:上述方法有什么不好?

1 个答案:

答案 0 :(得分:1)

  

所以我的问题是:上述方法有什么不好?

因为C#具有main的概念。在JavaScript / TypeScript中不是这样。代码在解析时开始执行。因此,不使用模块意味着您的代码可能会以脆弱的方式破解。

更多

https://basarat.gitbooks.io/typescript/content/docs/tips/outFile.html