为什么用Typescript - Angular2键入定义(.d.ts)?

时间:2016-03-21 09:52:15

标签: typescript angular typing type-definition

我已经看过其他SO问题。但仍然与我的问题相混淆。

我见过很多在Jquery(js)中直接使用Toastr(js)JS toastr without typings和其他angular2 app库而不使用其类型定义的示例 (.d.ts)个文件,它们工作得很好。

所以,

1) 基本上是什么是获利或失败,是否继续使用类型定义文件?

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

注意:我没有尝试使用NPM因此我不知道您何时实际安装Angualr2 package,它会在{{1}中添加所有相关的t.ds文件文件夹。

1 个答案:

答案 0 :(得分:12)

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

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

因此,您可以使用没有定义文件的第三方库,但是您将失去Typescript提供的类型安全性。

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

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