为什么使用 Typescript - Angular2 进行类型定义 (.d.ts)?
Why type definition (.d.ts) with Typescript - Angular2?
我已经看过其他SO问题了。但还是对我的问题感到困惑。
我见过很多直接在 angular2 app
中使用 Jquery(js)
、Toastr(js)
toastr without typings 和其他 JS
库而不使用它们的类型定义的示例
(.d.ts)
个文件,它们工作正常。
所以,
1) 基本上什么是增益或损失,类型定义文件是什么?
2) Angular2 文件也是 javascript 文件。那么他们的类型定义文件呢
?
注意:我还没有尝试过 NPM
所以我不知道当你实际安装 Angualr2 package
时,它是否添加了所有相关的 t.ds
文件在 typings
文件夹中。
Typescript 定义文件包含用 Javascript 编写的代码的类型信息。
Javascript 本身不包含类型信息,因此 Typescript 无法神奇地检索该信息。为了解决这个问题,创建了定义文件,告诉 Typescript 在什么地方使用了哪些类型。
因此,您可以在没有定义文件的情况下使用第 3 方库,但您将失去 Typescript 提供的类型安全性。
例如,如果您包含 jQuery 定义文件,那么您的 IDE 现在可以为 jQuery API 提供 intellisense/auto-suggestions。当您尝试将布尔值传递给需要字符串的函数时,Typescript 编译器也会给您警告。
因此 Typescript 不需要定义文件就可以工作,但是如果没有它们,您将失去 Typescript 提供的很多好处。
我已经看过其他SO问题了。但还是对我的问题感到困惑。
我见过很多直接在 angular2 app
中使用 Jquery(js)
、Toastr(js)
toastr without typings 和其他 JS
库而不使用它们的类型定义的示例
(.d.ts)
个文件,它们工作正常。
所以,
1) 基本上什么是增益或损失,类型定义文件是什么?
2) Angular2 文件也是 javascript 文件。那么他们的类型定义文件呢 ?
注意:我还没有尝试过 NPM
所以我不知道当你实际安装 Angualr2 package
时,它是否添加了所有相关的 t.ds
文件在 typings
文件夹中。
Typescript 定义文件包含用 Javascript 编写的代码的类型信息。
Javascript 本身不包含类型信息,因此 Typescript 无法神奇地检索该信息。为了解决这个问题,创建了定义文件,告诉 Typescript 在什么地方使用了哪些类型。
因此,您可以在没有定义文件的情况下使用第 3 方库,但您将失去 Typescript 提供的类型安全性。
例如,如果您包含 jQuery 定义文件,那么您的 IDE 现在可以为 jQuery API 提供 intellisense/auto-suggestions。当您尝试将布尔值传递给需要字符串的函数时,Typescript 编译器也会给您警告。
因此 Typescript 不需要定义文件就可以工作,但是如果没有它们,您将失去 Typescript 提供的很多好处。