2017-09-18 23:21:46 +03:00
# tslib
2015-04-22 23:47:06 +03:00
This is a runtime library for [TypeScript ](http://www.typescriptlang.org/ ) that contains all of the TypeScript helper functions.
2017-09-18 23:21:46 +03:00
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` .
2016-05-18 23:25:21 +03:00
# Installing
2015-04-22 23:47:06 +03:00
2017-09-18 23:21:46 +03:00
For the latest stable version, run:
2015-04-22 23:47:06 +03:00
2016-12-21 20:42:09 +03:00
## npm
```sh
2020-07-29 11:37:37 +03:00
# TypeScript 3.9.2 or later
2019-02-19 01:24:28 +03:00
npm install tslib
2017-05-04 23:24:47 +03:00
2020-07-29 11:37:37 +03:00
# TypeScript 3.8.4 or earlier
2020-10-06 18:51:18 +03:00
npm install tslib@^1
2020-07-29 11:37:37 +03:00
2017-05-04 23:24:47 +03:00
# TypeScript 2.3.2 or earlier
2019-02-19 01:24:28 +03:00
npm install tslib@1.6.1
2016-05-18 23:25:21 +03:00
```
2019-08-07 19:37:04 +03:00
## yarn
```sh
2020-07-29 11:37:37 +03:00
# TypeScript 3.9.2 or later
2019-08-07 19:37:04 +03:00
yarn add tslib
2020-07-29 11:37:37 +03:00
# TypeScript 3.8.4 or earlier
2020-09-23 18:43:10 +03:00
yarn add tslib@^1
2020-07-29 11:37:37 +03:00
2019-08-07 19:37:04 +03:00
# TypeScript 2.3.2 or earlier
yarn add tslib@1.6.1
```
2016-12-21 20:42:09 +03:00
## bower
```sh
2020-07-29 11:37:37 +03:00
# TypeScript 3.9.2 or later
2016-12-21 20:42:09 +03:00
bower install tslib
2017-05-04 23:24:47 +03:00
2020-07-29 11:37:37 +03:00
# TypeScript 3.8.4 or earlier
2020-09-23 18:43:10 +03:00
bower install tslib@^1
2020-07-29 11:37:37 +03:00
2017-05-04 23:24:47 +03:00
# TypeScript 2.3.2 or earlier
bower install tslib@1.6.1
2016-12-21 20:42:09 +03:00
```
2016-12-22 04:49:56 +03:00
## JSPM
```sh
2020-07-29 11:37:37 +03:00
# TypeScript 3.9.2 or later
2017-08-19 19:21:57 +03:00
jspm install tslib
2017-05-04 23:24:47 +03:00
2020-07-29 11:37:37 +03:00
# TypeScript 3.8.4 or earlier
2020-09-23 18:43:10 +03:00
jspm install tslib@^1
2020-07-29 11:37:37 +03:00
2017-05-04 23:24:47 +03:00
# TypeScript 2.3.2 or earlier
2017-08-19 19:21:57 +03:00
jspm install tslib@1.6.1
2016-12-22 04:49:56 +03:00
```
2016-05-18 23:25:21 +03:00
# Usage
2016-11-21 22:13:04 +03:00
Set the `importHelpers` compiler option on the command line:
2016-12-21 20:48:10 +03:00
2016-05-18 23:25:21 +03:00
```
2016-11-21 22:13:04 +03:00
tsc --importHelpers file.ts
2016-05-18 23:25:21 +03:00
```
2016-11-21 22:13:04 +03:00
or in your tsconfig.json:
2016-12-21 20:48:10 +03:00
2016-11-21 22:13:04 +03:00
```json
{
"compilerOptions": {
"importHelpers": true
}
}
2016-05-18 23:25:21 +03:00
```
2015-04-22 23:47:06 +03:00
2016-12-22 04:49:56 +03:00
#### For bower and JSPM users
2016-12-21 20:53:22 +03:00
2016-12-22 04:49:56 +03:00
You will need to add a `paths` mapping for `tslib` , e.g. For Bower users:
2016-12-21 20:53:22 +03:00
```json
{
"compilerOptions": {
"module": "amd",
"importHelpers": true,
"baseUrl": "./",
"paths": {
"tslib" : ["bower_components/tslib/tslib.d.ts"]
}
}
}
```
2016-12-22 04:49:56 +03:00
For JSPM users:
```json
{
"compilerOptions": {
2017-08-19 19:21:57 +03:00
"module": "system",
2016-12-22 04:49:56 +03:00
"importHelpers": true,
"baseUrl": "./",
"paths": {
2020-10-06 18:51:18 +03:00
"tslib" : ["jspm_packages/npm/tslib@2.x.y/tslib.d.ts"]
2016-12-22 04:49:56 +03:00
}
}
}
```
2021-01-06 20:13:26 +03:00
## 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 ](https://github.com/microsoft/tslib/releases )
- Run the [publish to npm ](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22 ) workflow
Done.
2016-12-22 04:49:56 +03:00
2016-12-21 20:48:10 +03:00
# Contribute
2015-04-22 23:47:06 +03:00
There are many ways to [contribute ](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md ) to TypeScript.
2017-09-18 23:21:46 +03:00
2015-04-22 23:47:06 +03:00
* [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 ).
2016-05-18 23:25:21 +03:00
* Engage with other TypeScript users and developers on [StackOverflow ](http://stackoverflow.com/questions/tagged/typescript ).
2015-04-22 23:47:06 +03:00
* Join the [#typescript ](http://twitter.com/#!/search/realtime/%23typescript ) discussion on Twitter.
* [Contribute bug fixes ](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md ).
2016-12-21 20:48:10 +03:00
# Documentation
2015-04-22 23:47:06 +03:00
2016-12-21 20:48:10 +03:00
* [Quick tutorial ](http://www.typescriptlang.org/Tutorial )
* [Programming handbook ](http://www.typescriptlang.org/Handbook )
* [Homepage ](http://www.typescriptlang.org/ )