**Installing npm** The easiest way to install TypeScript is with the Node Package Manager, `npm`. `npm` comes packaged with Node.js. You can install both from the [Node.js website](https://nodejs.org/en/download/). (If you're already working in JavaScript, you may have Node and `npm` installed already.) Node.js is also available in your package manager of choice. On Mac OSX, if you're using the [Homebrew package manager](https://brew.sh/), you can install Node.js with `brew install node`. **Installing TypeScript using npm** To create a new project using TypeScript, run `npm init` inside your project folder to create a `package.json` file. Then use `npm install typescript` to install TypeScript in that folder only. That way, you can have many projects using different versions of TypeScript. **Using the TypeScript compiler** The TypeScript compiler is named `tsc`. It takes as input a file containing TypeScript code, and outputs a file containing JavaScript code. Running the command ``` $(npm bin)/tsc myCode.ts ``` will check the types of your program. If it's successful, it will then create a file in the same folder called `myCode.js`. You can then run that file as JavaScript using Node.js by typing `node myCode.js`. **Our TypeScript compiler options** You can see a complete list of TypeScript compiler options by running `$(npm bin)/tsc --help`. Here are the relevant options we use in our TypeScript course. We also use these same options to develop Execute Program itself. - `--strict`. This enables all strict type checking options, including `--noImplicitAny` and several others. - `--noImplicitReturns`. This reports an error when a function has a declared return type, but some code paths don't return a value. Without this option, your functions may return `undefined` values without you realizing it. - `--noFallthroughCasesInSwitch`. With this option, the compiler will tell you when you accidentally write a `case` statement with no `break` or `return`. - `--noUnusedLocals`. This options prevents unused local variables, which are usually a mistake. All together, we recommend that you compile TypeScript code with ``` $(npm bin)/tsc --noImplicitReturns --noFallthroughCasesInSwitch --strict --noUnusedLocals myCode.ts ``` When you move on to building more complex applications in TypeScript, you can move those options into your `tsconfig.json` file. **Using a TypeScript command prompt** Often, you'll need to check the result of a single expression. It's most convenient to use a command prompt, where you can type an expression and get immediate output: ``` > 3 * 6 18 ``` For that, we recommend `ts-node`. You can install it with `npm install ts-node`. **Using a TypeScript linter** We strongly recommend you use a linter for TypeScript. A linter will catch several kinds of errors that the compiler can't see. Also, it can keep your code stylistically consistent. We recommend [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint).** ___ **Tags**: #typescript