Install missing TypeScript typings for your dependencies.
npm install typesyncInstall missing TypeScript typings for dependencies in your package.json.






``sh`
npm install -g typesync
You can also use it directly with npx which will install it for you:
`sh`
npx typesync
`sh`
typesync [path/to/package.json] [--dry]
Path is relative to the current working directory. If omitted, defaults to package.json.
Note: TypeSync only modifies your package.json - you still need to run an installer.
If --dry is specified, will not actually write to the file, it only prints added/removed typings.
The same is true for --dry=fail, with the additional effect of failing the command in case there are changes.
This is useful for CI scenarios.
To ignore certain sections, you can use the --ignoredeps= flag. For example, to ignore devDependencies, use --ignoredeps=dev. To ignore multiple, comma-separate them, like this: --ignoredeps=deps,peer (ignores dependencies and peerDependencies).
- --ignoredeps=deps — ignores dependencies--ignoredeps=dev
- — ignores devDependencies--ignoredeps=peer
- — ignores peerDependencies--ignoredeps=optional
- — ignores optionalDependencies
To ignore certain packages, you can use the --ignorepackages= flag. For example, to ignore nodemon, use --ignorepackages=nodemon.--ignorepackages=nodemon,whatever
To ignore multiple, comma-separate them, like this: (ignores nodemon and whatever).
Alternatively, you can use a TypeSync config file: .typesyncrc or a "typesync" section in your package.json. TypeSync will automatically search for configuration files. See [cosmiconfig][cosmiconfig] for details.
`json`
// .typesyncrc
{
"ignoreDeps": ["dev"],
"ignorePackages": ["nodemon"]
}
To run TypeSync and install packages automatically after every package install, create a file called install-with-types.sh with the following content:
`sh`
npm install $1
npx typesync
npm install
If you use yarn, use this instead:
`sh`
yarn add $1
yarn typesync
yarn
Run this command to make the file executable:
`sh`
chmod +x install-with-types.sh
Add the following to package.json:
`json`
{
"scripts": {
"i": "./install-with-types.sh"
}
}
Then install packages like this:
`sh
npm run i
Typings packages
TypeSync will add typings for packages that:
- have a
@types/package available
- don't already provide typings internally (the typings and types field in package.json)TypeSync will try to respect SemVer parity for the code and typings packages, and will fall back to the latest available typings package.
When writing the typings package version to
package.json, the ~ SemVer range is used. This is because typings published via DefinitelyTyped align typings versions with library versions using major and minor only.For example, if you depend on
react@^16.14.0, then TypeSync will only look for typings packages that match 16.14.*.Monorepos
TypeSync added support for monorepos in v0.4.0. It will look at
packages/workspaces globs in package.json and sync every matching file in one fell swoop.Why?
Installing typings manually sucks. Flow has
flow-typed which installs type definitions by looking at a package.json`, which would be cool to have for TypeScript. Now we do!See CHANGELOG.md
Jeff Hansen - @Jeffijoe
[cosmiconfig]: https://github.com/davidtheclark/cosmiconfig