62

我阅读了位于以下位置的 TypeScript 规范: http ://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf

然而,它让我对以下内容感到困惑:

  1. 界面
  2. 班级
  3. 模块
  4. 程式
  5. 职能。
  6. 声明与 var

有人可以简要帮助了解何时应使用上述哪一项吗?接口和类是否与 C# 版本相同?

4

1 回答 1

133

正如您在问题中提到的那样,我已使这些答案与 C# 匹配,但希望这些答案对从类似语言来到 TypeScript 的人也有用。

界面

TypeScript 中的界面类似于您在 C# 中遇到的界面。这是一个契约——如果你的一个类实现了一个接口,它承诺具有接口记录的某些属性或方法。

在 TypeScript 中,一个接口可以从另一个接口继承来扩展它,也可以从一个类继承来捕获它的实现。

每当 TypeScript 中似乎不可能的事情时,您通常可以使用界面来解决它!

在 TypeScript 中,接口有广泛的用途。它们描述了一种结构,因此可以在任何使用类型的地方使用(即不仅可以在类中实现它们,还可以使用它们来键入变量、参数、返回值等)。

班级

这与 C# 中类的概念非常相似。您可以从其他类继承来扩展或专门化行为。

命名空间

较新的命名空间关键字用于将一组代码放置在有限范围内。这类似于 C# 命名空间。

模块

就 TypeScript 而言,模块比命名空间更好。模块(以前称为外部模块)是一个自包含的文件,不会向您的全局范围添加任何内容。您可以根据需要将模块加载到局部变量中。模块提供了一种组织代码和按需加载部件的好方法。使用模块时,最好避免使用命名空间。模块比命名空间更好。

程序

程序是模块、类的集合。这本质上是您使用 TypeScript 编写的内容。

功能/方法

类包含方法,您也可以编写不属于某个类的独立函数。

声明与 var

var创建一个新变量。declare用于告诉 TypeScript 该变量已在其他地方创建。如果使用declare,则不会将任何内容添加到生成的 JavaScript 中 - 它只是对编译器的提示。

例如,如果您使用定义 的外部脚本var externalModule,您将使用declare var externalModule提示externalModule已设置的 TypeScript 编译器。

于 2012-10-06T22:07:38.803 回答