microsoft / microsoft/TypeScript
feature request: expose `tsconfig.json` types in TypeScript files
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
🔍 Search Terms
expose tsconfig.json types to developers
✅ Viability Checklist
- 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, new syntax sugar for JS, etc.)
- This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
⭐ Suggestion
It'd be nice if TypeScript developers could enforce that an object is consistent with tsconfig.json.
📃 Motivating Example
If you're creating a tool that initializes a project that uses TypeScript, you can ensure the tsconfig.json you're composing in your source code is valid.
const tsConfig: TSConfig = {
"compilerOptions": {
"forceConsistentCasingInFileNames": true,
"strict": true,
"module": "NodeNext"
}
};
fs.writeFileSync(
path.join(root, "tsconfig.json"),
JSON.stringify(tsConfig, null, 2)
);
💻 Use Cases
- What do you want to use this for?
I'm building a tool that initializes a TypeScript project with other dependencies.
It'd be kind of nice if I could be 100% certain the tsconfig.json I'm composing in my source code is valid.
fs.writeFileSync(
path.join(root, "tsconfig.json"),
JSON.stringify(
{
compilerOptions: {
target: "ESNext",
module: "CommonJS",
jsx: "react-jsx",
},
include: ["src"],
exclude: ["node_modules"],
},
null,
2
)
);
- What shortcomings exist with current approaches?
In .ts source code, TypeScript doesn't verify if a tsconfig.json file being written to disk is valid or not.
- What workarounds are you using in the meantime?
I'm copying over an existing tsconfig.json file from a template/ subdirectory.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par les exemples de tsconfig.json dans l’issue et examinez comment TypeScript représente et valide actuellement les options du compilateur. Aucun fichier du dépôt, test ou point d’entrée n’est nommé ; l’emplacement et la portée de l’implémentation doivent donc d’abord être étudiés. La tâche serait terminée lorsque le code source de TypeScript pourrait valider la structure de configuration présentée sans modifier le JavaScript généré.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers, developer-experience
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 30/100