Skip to content

Make tsc --init generate default target to ES6 or higher #39308

@Jack-Works

Description

@Jack-Works
Contributor

Search Terms

tsc --init default target ES5 ES6

Suggestion

When running tsc --init, let the tsconfig has es6 or higher target.

Use Cases

It's not common to have to use es5 nowadays

Examples

Checklist

My suggestion meets these guidelines:

  • This wouldn't be a breaking change in existing TypeScript/JavaScript code
    This wouldn't change the runtime behavior of existing JavaScript code
    This could be implemented without emitting different JS based on the types of the expressions
    This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
    This feature would agree with the rest of TypeScript's Design Goals.

Activity

lloydjatkinson

lloydjatkinson commented on Jun 1, 2023

@lloydjatkinson

Any plans for the team to implement this change? It's absurd tsc -init defaults to "target": "es2016" and the rest still.

RyanCavanaugh

RyanCavanaugh commented on Jun 1, 2023

@RyanCavanaugh
Member

Can you clarify what's absurd? Just calling something names doesn't help us understand what's bad about it.

Axel-Jalonen

Axel-Jalonen commented on Jun 21, 2024

@Axel-Jalonen

Can you clarify what's absurd? Just calling something names doesn't help us understand what's bad about it.

As an example: "Typescript includes the __awaiter helper because async/await is not a part of the ES6/ES2015 specification."

Async/await was first included in the ES2017 specification.

In 2024, and indeed 2023, we should not default to using helpers, or solutions like this, when native functionality is included with every modern browser. Using modern standards and not old fixes is good for readability, correctness, robustness of code, etc.

https://stackoverflow.com/a/47995659

Jack-Works

Jack-Works commented on Apr 14, 2025

@Jack-Works
ContributorAuthor

This is shipped since I cannot recall when

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    In DiscussionNot yet reached consensusSuggestionAn idea for TypeScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @Jack-Works@lloydjatkinson@RyanCavanaugh@Axel-Jalonen

        Issue actions

          Make tsc --init generate default target to ES6 or higher · Issue #39308 · microsoft/TypeScript