GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Review the project setup experience · Issue #41580 · microsoft/TypeScript

Review the project setup experience #41580

New issue
Copy link
New issue
Copy link
Open
Open
Review the project setup experience#41580
Copy link
Assignees
DanielRosenwasser
Labels
Needs ProposalThis issue needs a plan that clarifies the finer details of how it could be implemented.This issue needs a plan that clarifies the finer details of how it could be implemented.RescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestoneSuggestionAn idea for TypeScriptAn idea for TypeScript
Milestone
TypeScript 5.7.0

Description

@DanielRosenwasser
Daniel Rosenwasser (DanielRosenwasser)
opened on Nov 18, 2020
Issue body actions

Today, tsc --init creates a big-ol' file that is super intimidating. We try to provide comments and blocks of sections to give people a clear separation of config concerns. We also provide a link to https://aka.ms/tsconfig.json.

We also have a belief that most people don't even use tsc --init.

That said, there are problems, and tsc --init doesn't make it totally clear what the "best practices" are for starting a project. Things that are missing:

  • Project layout guidance (e.g. src, tsconfig naming)
  • "well known"/"blessed" flags as opposed to just ONE BIG PAGE of ALL THE FLAGS 😨
  • Easy way to find the information regardless of whether a user used tsc --init

In short:

  • Docs for tsconfig.json "getting started"
  • Link to that in generated tsconfig.json
  • Re-evaluate generated tsconfig content.
Reacted by Joe Percy, Erik, Joseph Kohlmann, Marko Kaznovac, Bill Cauchois, Kirill Groshkov, Mark Adamson, Edoardo Luppi, Kyrylo Taran, gaowanqiu and 24 more
Reacted by Bat

Activity

Next
  1. Daniel Rosenwasser (DanielRosenwasser)
    self-assigned this
    on Nov 18, 2020
  2. Daniel Rosenwasser (DanielRosenwasser)
    added
    Needs ProposalThis issue needs a plan that clarifies the finer details of how it could be implemented.This issue needs a plan that clarifies the finer details of how it could be implemented.
    SuggestionAn idea for TypeScriptAn idea for TypeScript
    on Nov 18, 2020
  3. Daniel Rosenwasser (DanielRosenwasser)
    added this to the TypeScript 4.2.0 milestone on Nov 18, 2020
  4. orta commented on Nov 18, 2020

    @orta
    Orta Therox (orta)
    on Nov 18, 2020
    Contributor
    More actions

    Possible spaces for exploration:

    • Make it interactive and/or rely on @tsconfig/bases for examples to work from
    • A different way to show groups of common tsconfig options (e.g. "these are all the things most node projects use") in the reference
    • Better categorization of tsconfig opts
    Reacted by Steven
  5. RyanCavanaugh commented on Nov 18, 2020

    @RyanCavanaugh
    Ryan Cavanaugh (RyanCavanaugh)
    on Nov 18, 2020
    Member
    More actions

    Just throwing out what I myself would want to happen, tsc --init should give me (in order):

    • All of the "you need to tell us" settings written out at the top (target, module, etc)
    • Opinionated defaults where necessary to prevent undesirable behavior (e.g. `outDir: "./lib" to prevent in-placing .js files)
    • All of our "recommended" options in a block with "We recommend these settings for new projects"
    • The most-commonly-changed settings (lint-ish rules, etc) after that
    Reacted by Mick Dekkers
  6. AlCalzone commented on Nov 19, 2020

    @AlCalzone
    AlCalzone
    on Nov 19, 2020
    Contributor
    More actions
    * Make it interactive
    

    My first thought, too. You could ask the user...
    ...what runtime he is targeting (Browser w/ or w/o React, Node.js)
    ...which minimum version (e.g. to set up target/lib)
    ...whether potential undefined values should be flagged (to nudge users towards the goodness that is hidden behind the somewhat intimidating name --strict)
    ...etc

    Reacted by __, Waseem Dahman, t7yang and Jayden Pearse
  7. SagnikPradhan commented on Nov 20, 2020

    @SagnikPradhan
    Sagnik Pradhan (SagnikPradhan)
    on Nov 20, 2020
    More actions

    Making a minimal interactive command similar to that of eslint can be an interesting option too.

  8. softwareCobbler commented on Nov 24, 2020

    @softwareCobbler
    David Rogers (softwareCobbler)
    on Nov 24, 2020
    Contributor
    More actions

    I figure you have telemetry for this; but one more datapoint for you: I use tsc --init all the time and just "uncomment out" all the strict options. Max safety, I want all the red squigglies and inference you can muster.

  9. renanmontebelo commented on Jan 5, 2021

    @renanmontebelo
    Renan Montebelo (renanmontebelo)
    on Jan 5, 2021
    More actions

    I like the fact that tsc --init generates a file with all flags explicitly listed, even if most are commented out. However, I was surprised today when I noticed the commented out flags do not necessarily reflect default values. For instance, the following line is generated

    // "sourceMap": true, /* Generates corresponding '.map' file. */

    when the actual default value is false. My suggestion is that these values should reflect default values and hence be fully self-documented (no need to visit a webpage to check what the default values are).

    Reacted by Simon Karman, Lukas Elmer, Mariusz Pawelski, Chris Krycho, Bruno Heridet, Yehyoung Kang, Branch Vincent and Steven
  10. Jack-Works commented on Jan 6, 2021

    @Jack-Works
    Jack Works (Jack-Works)
    on Jan 6, 2021
    Contributor
    More actions

    Another problem is that when upgrading, there isn't a "tsc --upgrade" command to add new flags into the tsconfig.json

    Reacted by Renan Montebelo, Jan Procházka, Simon Karman and Pelle Wessman
  11. Daniel Rosenwasser (DanielRosenwasser)
    modified the milestones: TypeScript 4.2.0, TypeScript 4.2.1 on Jan 20, 2021
  12. voxpelli commented on Feb 17, 2021

    @voxpelli
    Pelle Wessman (voxpelli)
    on Feb 17, 2021
    More actions

    The default value of some of the flags is also confusing for people who are new to the flags and trying to set it up for themselves manually or through tsc --init, many assuming that flags are used to deviate from the recommended route, not used to stick to the recommended route. See eg. #41139

  13. Ryan Cavanaugh (RyanCavanaugh)
    added
    RescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestone
    on Mar 4, 2021
  14. 10 remaining items

  15. Ryan Cavanaugh (RyanCavanaugh)
    added this to the TypeScript 4.4.1 (RC) milestone on Jun 18, 2021
  16. Andrew Branch (andrewbranch)
    modified the milestones: TypeScript 4.4.1 (RC), TypeScript 4.5.0 on Aug 31, 2021
  17. Ryan Cavanaugh (RyanCavanaugh)
    modified the milestones: TypeScript 4.5.0, TypeScript 4.6.0 on Dec 15, 2021
  18. Ryan Cavanaugh (RyanCavanaugh)
    modified the milestones: TypeScript 4.6.0, TypeScript 4.6.1 on Feb 3, 2022
  19. Ryan Cavanaugh (RyanCavanaugh)
    modified the milestones: TypeScript 4.6.1, TypeScript 4.8.0 on May 13, 2022
  20. Ryan Cavanaugh (RyanCavanaugh)
    modified the milestones: TypeScript 4.8.0, TypeScript 5.1.0 on Feb 1, 2023
  21. Ryan Cavanaugh (RyanCavanaugh)
    modified the milestones: TypeScript 5.1.0, TypeScript 5.5.0 on Mar 4, 2024
  22. Ryan Cavanaugh (RyanCavanaugh)
    modified the milestones: TypeScript 5.5.0, TypeScript 5.7.0 on Jul 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @DanielRosenwasser
    Daniel Rosenwasser (DanielRosenwasser)

Labels

Needs ProposalThis issue needs a plan that clarifies the finer details of how it could be implemented.This issue needs a plan that clarifies the finer details of how it could be implemented.RescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestoneSuggestionAn idea for TypeScriptAn idea for TypeScript

Type

No type

Projects

No projects

    Milestone

    • TypeScript 5.7.0

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.