babel-preset-proposal-typescript
Advanced tools
Yet another Babel preset for TypeScript, only transforms proposals which TypeScript does not support now.
Weekly downloads
Changelog
Readme
Yet another Babel preset for TypeScript, only transforms proposals which TypeScript does not support now.
So that you can use babel to transform proposals which are current in stage 0-2 and TypeScript team will not implement them temporarily.
# yarn
yarn add -D babel-preset-proposal-typescript
# npm
npm i -D babel-preset-proposal-typescript
option | description | defaults |
---|---|---|
classLoose | whether to use loose mode for class-static-block , class-properties and private-methods | undefined |
decoratorsBeforeExport | See Babel Document | undefined |
decoratorsLegacy | whether to use legacy decorators semantic | true |
isTSX | whether to enable jsx plugin with typescript | false , but true for /\.[jt]sx$/ |
pipelineOperator | implementation of pipeline operator, minimal , smart or fsharp | minimal |
recordTuplePolyfill | whether to enable import record-tuple plugin and polyfill, or specific the polyfill module name | true for Node>=14.6, it represents @bloomberg/record-tuple-polyfill |
recordTupleSyntaxType | record-tuple syntax, hash or bar | hash |
Note that unlike plugins, the presets are applied in an order of last to first (https://babeljs.io/docs/en/presets/#preset-ordering), so please make sure proposal-typescript
is used at the last.
.babelrc
(Recommended).babelrc
{
"presets": ["proposal-typescript"]
}
babel input.ts --presets proposal-typescript >output.ts
require('@babel/core').transform('code', {
presets: ['proposal-typescript'],
})
Pipe codes through babel-loader
.
loader = {
test: /\.[jt]sx?$/,
loader: 'babel-loader',
options: {
presets: ['@babel/typescript', 'proposal-typescript'],
},
}
// if you prefer `ts-loader` or `awesome-typescript-loader`
loader = {
test: /\.tsx?$/,
use: [
{
loader: 'ts-loader',
},
{
loader: 'babel-loader',
options: {
presets: ['proposal-typescript'],
},
},
],
}
Detailed changes for each release are documented in CHANGELOG.md.