我阅读了位于以下位置的 TypeScript 规范: http ://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf
然而,它让我对以下内容感到困惑:
- 界面
- 班级
- 模块
- 程式
- 职能。
- 声明与 var
有人可以简要帮助了解何时应使用上述哪一项吗?接口和类是否与 C# 版本相同?
我阅读了位于以下位置的 TypeScript 规范: http ://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf
然而,它让我对以下内容感到困惑:
有人可以简要帮助了解何时应使用上述哪一项吗?接口和类是否与 C# 版本相同?
正如您在问题中提到的那样,我已使这些答案与 C# 匹配,但希望这些答案对从类似语言来到 TypeScript 的人也有用。
界面
TypeScript 中的界面类似于您在 C# 中遇到的界面。这是一个契约——如果你的一个类实现了一个接口,它承诺具有接口记录的某些属性或方法。
在 TypeScript 中,一个接口可以从另一个接口继承来扩展它,也可以从一个类继承来捕获它的实现。
每当 TypeScript 中似乎不可能的事情时,您通常可以使用界面来解决它!
在 TypeScript 中,接口有广泛的用途。它们描述了一种结构,因此可以在任何使用类型的地方使用(即不仅可以在类中实现它们,还可以使用它们来键入变量、参数、返回值等)。
班级
这与 C# 中类的概念非常相似。您可以从其他类继承来扩展或专门化行为。
命名空间
较新的命名空间关键字用于将一组代码放置在有限范围内。这类似于 C# 命名空间。
模块
就 TypeScript 而言,模块比命名空间更好。模块(以前称为外部模块)是一个自包含的文件,不会向您的全局范围添加任何内容。您可以根据需要将模块加载到局部变量中。模块提供了一种组织代码和按需加载部件的好方法。使用模块时,最好避免使用命名空间。模块比命名空间更好。
程序
程序是模块、类的集合。这本质上是您使用 TypeScript 编写的内容。
功能/方法
类包含方法,您也可以编写不属于某个类的独立函数。
声明与 var
var
创建一个新变量。declare
用于告诉 TypeScript 该变量已在其他地方创建。如果使用declare
,则不会将任何内容添加到生成的 JavaScript 中 - 它只是对编译器的提示。
例如,如果您使用定义 的外部脚本var externalModule
,您将使用declare var externalModule
提示externalModule
已设置的 TypeScript 编译器。