我已经看过其他SO问题.但仍然困惑于我的问题.
我见过许多例子,它们直接在angular2 app中使用 Jquery(js),Toastr(js) toastr without typings和其他JS库而不使用它们的类型定义
(.d.ts)文件,它们工作得很好.
所以,
1)基本上什么是获利或失败,去和不去用类型定义文件?
我见过许多例子,它们直接在angular2 app中使用 Jquery(js),Toastr(js) toastr without typings和其他JS库而不使用它们的类型定义
(.d.ts)文件,它们工作得很好.
所以,
1)基本上什么是获利或失败,去和不去用类型定义文件?
2)Angular2文件也是javascript文件.那么他们的类型定义文件怎么样呢
?
注意:我没有尝试使用NPM,因此我不知道当您实际安装Angualr2软件包时,它会在typings文件夹中添加所有相关的t.ds文件.
解决方法
Typescript Definition文件包含用Javascript编写的代码的类型信息.
Javascript本身不包含类型信息,因此Typescript无法神奇地检索该信息.为了解决这个问题,创建了定义文件,告诉Typescript在哪里使用哪些类型.
因此,您可以使用没有定义文件的第三方库,但是您将失去Typescript提供的类型安全性.
例如,如果包含jQuery定义文件,那么IDE现在可以为jQuery API提供intellisense / auto-advice.当您尝试将布尔值传递给需要字符串的函数时,Typescript编译器也会发出警告.
因此,Typescript不需要定义文件,但没有它们会失去Typescript提供的许多好处.