4

我已经看到了其他 SO 问题。但仍然对我的问题感到困惑。

我已经看到了许多使用Jquery(js), Toastr(js) toastr的示例,它们直接在没有类型定义 文件的情况下使用和其他JS库,并且它们工作得很好。 那么, 1)基本上什么是收益或损失,与类型定义文件一起去和不去?angular2 app(.d.ts)



2) Angular2 文件也是 javascript 文件。那么他们的类型定义文件呢?

注意:我没有尝试过,NPM所以我不知道您是否在实际安装Angualr2 package时将所有相关t.ds文件添加到文件typings夹中。

4

1 回答 1

12

Typescript 定义文件包含用 Javascript 编写的代码的类型信息。

Javascript 本身不包含类型信息,因此 Typescript 无法神奇地检索该信息。为了解决这个问题,创建了定义文件,这些文件告诉 Typescript 在哪里使用了哪些类型。

因此,您可以在没有定义文件的情况下使用 3rd 方库,但您将失去 Typescript 提供的类型安全性。

例如,如果您包含 jQuery 定义文件,那么您的 IDE 现在可以为 jQuery API 提供智能感知/自动建议。当您尝试将布尔值传递给需要字符串的函数时,Typescript 编译器也会给您一个警告。

因此,Typescript 工作不需要定义文件,但没有它们,您将失去 Typescript 提供的许多好处。

于 2016-03-21T10:15:11.167 回答