| # 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 --save tslib |
| |
| # TypeScript 2.3.2 or earlier |
| npm install --save 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.10.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). |
| * Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)). |
| |
| # Documentation |
| |
| * [Quick tutorial](http://www.typescriptlang.org/Tutorial) |
| * [Programming handbook](http://www.typescriptlang.org/Handbook) |
| * [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md) |
| * [Homepage](http://www.typescriptlang.org/) |