| # tslib | |
| This is a runtime library for [TypeScript](http://www.typescriptlang.org/) 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: | |
| ```ts | |
| 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: | |
| ```ts | |
| 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 | |
| ```sh | |
| # TypeScript 2.3.3 or later | |
| npm install tslib | |
| # TypeScript 2.3.2 or earlier | |
| npm install tslib@1.6.1 | |
| ``` | |
| ## yarn | |
| ```sh | |
| # TypeScript 2.3.3 or later | |
| yarn add tslib | |
| # TypeScript 2.3.2 or earlier | |
| yarn add tslib@1.6.1 | |
| ``` | |
| ## bower | |
| ```sh | |
| # TypeScript 2.3.3 or later | |
| bower install tslib | |
| # TypeScript 2.3.2 or earlier | |
| bower install tslib@1.6.1 | |
| ``` | |
| ## JSPM | |
| ```sh | |
| # TypeScript 2.3.3 or later | |
| jspm install tslib | |
| # 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: | |
| ```json | |
| { | |
| "compilerOptions": { | |
| "importHelpers": true | |
| } | |
| } | |
| ``` | |
| #### For bower and JSPM users | |
| You will need to add a `paths` mapping for `tslib`, e.g. For Bower users: | |
| ```json | |
| { | |
| "compilerOptions": { | |
| "module": "amd", | |
| "importHelpers": true, | |
| "baseUrl": "./", | |
| "paths": { | |
| "tslib" : ["bower_components/tslib/tslib.d.ts"] | |
| } | |
| } | |
| } | |
| ``` | |
| For JSPM users: | |
| ```json | |
| { | |
| "compilerOptions": { | |
| "module": "system", | |
| "importHelpers": true, | |
| "baseUrl": "./", | |
| "paths": { | |
| "tslib" : ["jspm_packages/npm/tslib@1.[version].0/tslib.d.ts"] | |
| } | |
| } | |
| } | |
| ``` | |
| # Contribute | |
| There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript. | |
| * [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in. | |
| * Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls). | |
| * Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript). | |
| * Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter. | |
| * [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md). | |
| # Documentation | |
| * [Quick tutorial](http://www.typescriptlang.org/Tutorial) | |
| * [Programming handbook](http://www.typescriptlang.org/Handbook) | |
| * [Homepage](http://www.typescriptlang.org/) |