我正在使用TypeScript内部模块将代码结构化为逻辑块。(很像C#程序集或Java jar)。
这样做时,此类内部模块中的TypeScript类将拆分为不同的文件(每个类一个文件)。但是,仅在导出这些类时才引用此模块中的类。
自然,我想将其中一些类保留在模块内部。例如,假设我想将这两个类都保留在内部。
/// Bicycle.ts
module Sample {
class Bicycle {
}
}
/// Mountainbike.ts
/// <reference path="Bicycle.ts" />
module Sample {
class Mountainbike extends Bicyle {
}
}
使用Visual Studio 2013,仅当将导出导出到Bicycle类时才编译。当我将两个类都放在一个文件中时,一切正常。我在这里想念什么吗?
感谢您的宝贵时间,科恩
TypeScript中没有“模块内部”的概念。从您的直接模块声明(export
)外部可见(否export
)。
如果您希望保留一些类型,可以对代码进行结构化,以使消费者可以更清楚地了解不应该使用哪些类型:
module Sample {
export module Internal {
export class Bicycle { }
}
}
/* Somewhere else */
module Sample {
export class MountainBike extends Internal.Bicycle {
}
}
请注意,由于模块始终可以重新打开,因此这种方法与“内部模块”的概念一样“安全”。您可以认为这类似于C#中没有“公共名称空间”或“专用名称空间”的概念。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句