Setup and configuration
Installation and configuration
TypeScript offers custom installations for most modern JS-based frameworks including Webpack, React.js and Vue.js. The instructions below cover minimal TS set-up outside of a specific framework. TypeScript adds an additional step to any build process since your code must compile to JS before any bundling and transpilation can occur.
Installation
mkdir typescript-project
cd typescript-project
npm i typescript --save-dev
Initialise project
npx tsc --init
Basic configuration
"compilerOptions": {
"target" : "es2020", //es2015 for prod
"module" : "es2020",
"allowJs": true,
"checkJs": true,
"strict": true,
"esModuleInterop": true
}
Specify output paths (for production code)
"compilerOptions": {
...
"outDir": "dist",
"sourceMap": true,
}
Compile-time commands
tsc --noEmit
tsc --noEmit --watch
Global requirements
npm install -g typescript
npm install -g ts-node
ts-node
allows you to run TS files the way you would with standard JS, i.e. node [filename]
, you just use ts-node filename
.
This is a convenience that saves you compiling from TS → JS and then running Node against the compiled JS. Which is useful for debugging and checking values as you work.
Imports and exports
You may wish to define your custom types outside of their application, for instance in a /types/
directory. The custom type or types can then be imported using standard ES6 imports:
export type Article = {
price: number,
}
export type AnotherType = {
...
}
import { Article, AnotherType } from "./types/allTypes.js";
import Article from "./types/allTypes.js";
TypeScript also provides a specific import keyword type
so that you can distinguish type imports from other module imports. This is handy when you have multiple components in the one file:
import type { Article } from "./types/allTypes.js";