@types
Definitely Typed is definitely one of TypeScript's greatest strengths. The community has effectively gone ahead and documented the nature of nearly 90% of the top JavaScript projects out there.
This means that you can use these projects in a very interactive and exploratory manner, no need to have the docs open in a separate window and making sure you don't make a typo.
Using @types
@typesInstallation is fairly simple as it just works on top of npm. So as an example you can install type definitions for jquery simply as:
npm install @types/jquery --save-dev@types supports both global and module type definitions.
Global @types
@typesBy default any definitions that support global consumption are included automatically. E.g. for jquery you should be able to just start using $ globally in your project.
However, for libraries (like jquery) I generally recommend using modules:
Module @types
@typesAfter installation, no special configuration is required really. You just use it like a module e.g.:
import * as $ from "jquery";
// Use $ at will in this module :)Controlling Globals
As can be seen, having a definition that allows global leak-in automatically can be a problem for some teams. So you can choose to explicitly only bring in the types that make sense using the tsconfig.json compilerOptions.types e.g.:
{
"compilerOptions": {
"types" : [
"jquery"
]
}
}The above shows a sample where only jquery will be allowed to be used. Even if the person installs another definition like npm install @types/node its globals (e.g. process) will not leak into your code until you add them to the tsconfig.json types option.
Last updated