Skip to content

microsoft/tslib

tslib

This is a runtime library for TypeScript that contains all of the TypeScript helper functions.

This library is primarily used by the --importHelpers flag in TypeScript. When using --importHelpers, a module that uses helper functions like __extends and __assign in the following emitted file:

var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; exports.x = {}; exports.y = __assign({}, exports.x);

will instead be emitted as something like the following:

var tslib_1 = require("tslib"); exports.x = {}; exports.y = tslib_1.__assign({}, exports.x);

Because this can avoid duplicate declarations of things like __extends, __assign, etc., this means delivering users smaller files on average, as well as less runtime overhead. For optimized bundles with TypeScript, you should absolutely consider using tslib and --importHelpers.

Installing

For the latest stable version, run:

npm

# TypeScript 3.9.2 or later npm install tslib # TypeScript 3.8.4 or earlier npm install tslib@^1 # TypeScript 2.3.2 or earlier npm install tslib@1.6.1

yarn

# TypeScript 3.9.2 or later yarn add tslib # TypeScript 3.8.4 or earlier yarn add tslib@^1 # TypeScript 2.3.2 or earlier yarn add tslib@1.6.1

bower

# TypeScript 3.9.2 or later bower install tslib # TypeScript 3.8.4 or earlier bower install tslib@^1 # TypeScript 2.3.2 or earlier bower install tslib@1.6.1

JSPM

# TypeScript 3.9.2 or later jspm install tslib # TypeScript 3.8.4 or earlier jspm install tslib@^1 # TypeScript 2.3.2 or earlier jspm install tslib@1.6.1

Usage

Set the importHelpers compiler option on the command line:

tsc --importHelpers file.ts 

or in your tsconfig.json:

{ "compilerOptions": { "importHelpers": true } }

For bower and JSPM users

You will need to add a paths mapping for tslib, e.g. For Bower users:

{ "compilerOptions": { "module": "amd", "importHelpers": true, "baseUrl": "./", "paths": { "tslib" : ["bower_components/tslib/tslib.d.ts"] } } }

For JSPM users:

{ "compilerOptions": { "module": "system", "importHelpers": true, "baseUrl": "./", "paths": { "tslib" : ["jspm_packages/npm/tslib@2.x.y/tslib.d.ts"] } } }

Deployment

  • Choose your new version number
  • Set it in package.json and bower.json
  • Create a tag: git tag [version]
  • Push the tag: git push --tags
  • Create a release in GitHub
  • Run the publish to npm workflow

Done.

Contribute

There are many ways to contribute to TypeScript.

Documentation