home
  • Blog
5.11
  • Introduction
  • Getting Started
  • Tutorial
  • Core Concepts
  • Components
  • Routing
  • Services
  • EmberData
  • In-Depth Topics
  • Application Development
  • Application Concerns
  • Accessibility
  • Configuration
  • Testing
  • Addons and Dependencies
  • Using TypeScript
    • Using TypeScript with Ember
    • TypeScript: Getting Started
    • TypeScript: Core Concepts
    • TypeScript: Application Development
    • TypeScript: Additional Resources
  • Developer Tools
  • Ember Inspector
  • Code Editors
  • Additional Resources
  • Upgrading
  • Contributing to Ember.js
  • Glossary
Old Guides - You are viewing the guides for Ember v5.11.0.
Go to v6.3.0

TypeScript: Getting Started


Create a New TypeScript Application

To start a new Ember project with TypeScript, add the --typescript flag when you run ember new:

ember new my-typescript-app --typescript

Using the --typescript flag changes the output of ember new in a few ways:

TypeScript Project Files

Project files will be generated with .ts extensions instead of .js.

Packages to Support TypeScript

In addition to the usual packages added with ember new, the following packages will be added at their current "latest" value:

  • typescript
  • @tsconfig/ember
  • @typescript-eslint/*
  • @types/ember
  • @types/ember-data
  • @types/ember__* – @types/ember__object for @ember/object, etc.
  • @types/ember-data__* – @types/ember-data__model for @ember-data/model, etc.
  • @types/qunit
  • @types/rsvp

The typescript package provides tooling to support TypeScript type checking and compilation. The @types packages from DefinitelyTyped provide TypeScript type definitions for all of the Ember and EmberData modules.

Zoey says...

Ember also publishes its own native types compiled directly from its source code. For now, we continue to use the @types packages in these guides for the sake of compatibility with EmberData, because the EmberData @types packages are not compatible with Ember's native official types.

If you do not use EmberData, or if you use EmberData's alpha native types, we highly recommend following the instructions in this blog post to switch to the native types, which are guaranteed to always be 100% correct and 100% up to date!

Files and Config to Support TypeScript

In addition to the usual files added with ember new, we also add:

  • tsconfig.json – configuration to set up TypeScript for your project
  • types/global.d.ts – the location for any global type declarations you need to write
  • app/config/environment.d.ts – a basic set of types defined for the contents of your config/environment.js file

Additionally:

  • package.json will have a lint:types script to check types with the command line.
  • ember-cli-build.js will be configured to transform TypeScript at build-time.
  • .ember-cli has isTypeScriptProject set to true, which will force the blueprint generators to generate TypeScript rather than JavaScript by default.
  • .eslintrc.js will be configured for TypeScript.

Convert an Existing App to TypeScript

To convert an existing app to TypeScript, you'll need to make the changes described above manually (for now). To facilitate this, we've included a guide here.

left arrow
Using TypeScript with Ember
TypeScript: Core Concepts - TypeScript and Ember
right arrow
On this page

  • Create a New TypeScript Application
  • TypeScript Project Files
  • Packages to Support TypeScript
  • Files and Config to Support TypeScript
  • Convert an Existing App to TypeScript
Team Sponsors Security Legal Branding Community Guidelines
Twitter GitHub Discord Mastodon

If you want help you can contact us by email, open an issue, or get realtime help by joining the Ember Discord.

© Copyright 2025 - Tilde Inc.
Ember.js is free, open source and always will be.


Ember is generously supported by
blue Created with Sketch.