typesync

为 package.json 中的依赖项安装缺失的 TypeScript 类型。「Install missing TypeScript typings for dependencies in your package.json.」

Github星跟蹤圖

typesync

Install missing TypeScript typings for dependencies in your package.json.

npm
dependency Status
devDependency Status
Build Status
Coveralls
npm
npm
node

TypeSync

Install

npm install -g typesync

You can also use it directly with npx which will install it for you:

npx typesync

Usage

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 npm install, or — if drinking the k00laid — yarn.

--dry[=fail]

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.

--ignoredeps

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

--ignorepackages

To ignore certain packages, you can use the --ignorepackages= flag. For example, to ignore nodemon, use --ignorepackages=nodemon.
To ignore multiple, comma-separate them, like this: --ignorepackages=nodemon,whatever (ignores nodemon and whatever).

Using a config file

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 for details.

// .typesyncrc
{
  "ignoreDeps": ["dev"],
  "ignorePackages": ["nodemon"]
}

Run TypeSync Automatically After Every Install

To run TypeSync and install packages automatically after every package install, create a file called install-with-types.sh with the following content:

npm install $1
npx typesync
npm install

If you use yarn, use this instead:

yarn add $1
yarn typesync
yarn

Run this command to make the file executable:

chmod +x install-with-types.sh

Add the following to package.json:

{
  "scripts": {
    "i": "./install-with-types.sh"
  }
}

Then install packages like this:

npm run i <pkg name>

# Or, with yarn:
yarn i <pkg name>

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!

Changelog

See CHANGELOG.md

Author

Jeff Hansen - @Jeffijoe

主要指標

概覽
名稱與所有者jeffijoe/typesync
主編程語言TypeScript
編程語言JavaScript (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2017-07-11 15:34:31
推送於2025-09-10 01:34:49
最后一次提交2025-04-30 16:23:15
發布數39
最新版本名稱v0.14.3 (發布於 2025-04-03 15:19:56)
第一版名稱v0.0.1 (發布於 2017-07-11 17:37:54)
用户参与
星數1.6k
關注者數6
派生數22
提交數265
已啟用問題?
問題數64
打開的問題數1
拉請求數57
打開的拉請求數2
關閉的拉請求數27
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?