Socket
Socket
Sign inDemoInstall

type-coverage

Package Overview
Dependencies
Maintainers
1
Versions
131
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

type-coverage

A CLI tool to check type coverage for typescript code


Version published
Weekly downloads
52K
increased by4.73%
Maintainers
1
Weekly downloads
 
Created
Source

type-coverage

A CLI tool to check type coverage for typescript code

This tool will check type of all identifiers, the type coverage rate = the count of identifiers whose type is not any / the total count of identifiers, the higher, the better.

Dependency Status devDependency Status Build Status: Linux Build Status: Windows npm version Downloads type-coverage

install

yarn global add type-coverage

usage

run type-coverage

arguments

nametypedescription
-p, --projectstring?tell the CLI where is the tsconfig.json
--detailboolean?show detail
--at-leastnumber?fail if coverage rate < this value
--debugboolean?show debug info
--strictboolean?strict mode
--ignore-catchboolean?ignore catch
--cacheboolean?enable cache

strict mode

If the identifiers' type arguments exist and contain at least one any, like any[], ReadonlyArray<any>, Promise<any>, Foo<number, any>, it will be considered as any too

Also, future minor release may introduce stricter type check in this mode, which may lower the type coverage rate

enable cache

save and reuse type check result of files that is unchanged and independent of changed files in .type-coverage directory, to improve speed

ignore catch

If you want to get 100% type coverage then try {} catch {} is the largest blocked towards that.

This can be fixed in typescript with Allow type annotation on catch clause variable but until then you can turn on --ignore-catch --at-least 100.

Your catch blocks should look like

try {
  await ...
} catch (anyErr) {
  const err = <Error> anyErr
}

To have the highest type coverage.

config in package.json

  "typeCoverage": {
    "atLeast": 99 // same as --at-least
  },

ingore line

Use type-coverage:ignore-next-line or type-coverage:ignore-line in comment(// or /* */) to ignore any in a line.

try {
  // type-coverage:ignore-next-line
} catch (error) { // type-coverage:ignore-line
}

vscode plugin

https://marketplace.visualstudio.com/items?itemName=york-yao.vscode-type-coverage

add dynamic badges of type coverage rate

Use your own project url:

[![type-coverage](https://img.shields.io/badge/dynamic/json.svg?label=type-coverage&prefix=%E2%89%A5&suffix=%&query=$.typeCoverage.atLeast&uri=https%3A%2F%2Fraw.githubusercontent.com%2Fplantain-00%2Ftype-coverage%2Fmaster%2Fpackage.json)](https://github.com/plantain-00/type-coverage)

API

export function lint(
  project: string,
  detail: boolean,
  debug: boolean,
  files?: string[],
  oldProgram?: ts.Program,
  strict = false,
  enableCache = false,
  ignoreCatch = false
): Promise<{
  correctCount: number
  totalCount: number
  anys: {
    file: string
    line: number
    character: number
    text: string
  }[]
  program: ts.Program
}>

FAQ

Q: Does this count JavaScript files?

Yes, This package calls Typescript API, Typescript can parse Javascript file(with allowJs), then this package can too.

FAQs

Package last updated on 16 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc