2017-12-10 21:51:33 +01:00
# tslib
2017-05-28 00:38:50 +02:00
This is a runtime library for [TypeScript ](http://www.typescriptlang.org/ ) that contains all of the TypeScript helper functions.
2017-12-10 21:51:33 +01: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` .
2017-05-28 00:38:50 +02:00
# Installing
2017-12-10 21:51:33 +01:00
For the latest stable version, run:
2017-05-28 00:38:50 +02:00
## npm
```sh
# TypeScript 2.3.3 or later
2017-12-10 21:51:33 +01:00
npm install --save tslib
2017-05-28 00:38:50 +02:00
# TypeScript 2.3.2 or earlier
2017-12-10 21:51:33 +01:00
npm install --save tslib@1.6.1
2017-05-28 00:38:50 +02:00
```
## 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
2017-12-10 21:51:33 +01:00
jspm install tslib
2017-05-28 00:38:50 +02:00
# TypeScript 2.3.2 or earlier
2017-12-10 21:51:33 +01:00
jspm install tslib@1.6.1
2017-05-28 00:38:50 +02:00
```
# 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": {
2017-12-10 21:51:33 +01:00
"module": "system",
2017-05-28 00:38:50 +02:00
"importHelpers": true,
"baseUrl": "./",
"paths": {
2017-12-10 21:51:33 +01:00
"tslib" : ["jspm_packages/npm/tslib@1.8.1/tslib.d.ts"]
2017-05-28 00:38:50 +02:00
}
}
}
```
# Contribute
There are many ways to [contribute ](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md ) to TypeScript.
2017-12-10 21:51:33 +01:00
2017-05-28 00:38:50 +02: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 ).
* 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/ )