README.md
  1  # tslib
  2  
  3  This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.
  4  
  5  This library is primarily used by the `--importHelpers` flag in TypeScript.
  6  When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:
  7  
  8  ```ts
  9  var __assign = (this && this.__assign) || Object.assign || function(t) {
 10      for (var s, i = 1, n = arguments.length; i < n; i++) {
 11          s = arguments[i];
 12          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
 13              t[p] = s[p];
 14      }
 15      return t;
 16  };
 17  exports.x = {};
 18  exports.y = __assign({}, exports.x);
 19  
 20  ```
 21  
 22  will instead be emitted as something like the following:
 23  
 24  ```ts
 25  var tslib_1 = require("tslib");
 26  exports.x = {};
 27  exports.y = tslib_1.__assign({}, exports.x);
 28  ```
 29  
 30  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.
 31  For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.
 32  
 33  # Installing
 34  
 35  For the latest stable version, run:
 36  
 37  ## npm
 38  
 39  ```sh
 40  # TypeScript 3.9.2 or later
 41  npm install tslib
 42  
 43  # TypeScript 3.8.4 or earlier
 44  npm install tslib@^1
 45  
 46  # TypeScript 2.3.2 or earlier
 47  npm install tslib@1.6.1
 48  ```
 49  
 50  ## yarn
 51  
 52  ```sh
 53  # TypeScript 3.9.2 or later
 54  yarn add tslib
 55  
 56  # TypeScript 3.8.4 or earlier
 57  yarn add tslib@^1
 58  
 59  # TypeScript 2.3.2 or earlier
 60  yarn add tslib@1.6.1
 61  ```
 62  
 63  ## bower
 64  
 65  ```sh
 66  # TypeScript 3.9.2 or later
 67  bower install tslib
 68  
 69  # TypeScript 3.8.4 or earlier
 70  bower install tslib@^1
 71  
 72  # TypeScript 2.3.2 or earlier
 73  bower install tslib@1.6.1
 74  ```
 75  
 76  ## JSPM
 77  
 78  ```sh
 79  # TypeScript 3.9.2 or later
 80  jspm install tslib
 81  
 82  # TypeScript 3.8.4 or earlier
 83  jspm install tslib@^1
 84  
 85  # TypeScript 2.3.2 or earlier
 86  jspm install tslib@1.6.1
 87  ```
 88  
 89  # Usage
 90  
 91  Set the `importHelpers` compiler option on the command line:
 92  
 93  ```
 94  tsc --importHelpers file.ts
 95  ```
 96  
 97  or in your tsconfig.json:
 98  
 99  ```json
100  {
101      "compilerOptions": {
102          "importHelpers": true
103      }
104  }
105  ```
106  
107  #### For bower and JSPM users
108  
109  You will need to add a `paths` mapping for `tslib`, e.g. For Bower users:
110  
111  ```json
112  {
113      "compilerOptions": {
114          "module": "amd",
115          "importHelpers": true,
116          "baseUrl": "./",
117          "paths": {
118              "tslib" : ["bower_components/tslib/tslib.d.ts"]
119          }
120      }
121  }
122  ```
123  
124  For JSPM users:
125  
126  ```json
127  {
128      "compilerOptions": {
129          "module": "system",
130          "importHelpers": true,
131          "baseUrl": "./",
132          "paths": {
133              "tslib" : ["jspm_packages/npm/tslib@2.x.y/tslib.d.ts"]
134          }
135      }
136  }
137  ```
138  
139  ## Deployment
140  
141  - Choose your new version number
142  - Set it in `package.json` and `bower.json`
143  - Create a tag: `git tag [version]`
144  - Push the tag: `git push --tags`
145  - Create a [release in GitHub](https://github.com/microsoft/tslib/releases)
146  - Run the [publish to npm](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22) workflow
147  
148  Done.
149  
150  # Contribute
151  
152  There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.
153  
154  * [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.
155  * Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).
156  * Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).
157  * Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.
158  * [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).
159  
160  # Documentation
161  
162  * [Quick tutorial](http://www.typescriptlang.org/Tutorial)
163  * [Programming handbook](http://www.typescriptlang.org/Handbook)
164  * [Homepage](http://www.typescriptlang.org/)