microsoft / microsoft/TypeScript
Issue: TypeScript autocomplete for template literal types ignores user's Quote Style preference
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Ătoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
đ Search Terms
List of keywords : "double", "quote", "preference", "style", "autcomplete", "template", "literral"
đ Version & Regression Information
TS Version : 6.0.3 or 7.0-rc
⯠Playground Link
đ» Code
type TableName = 't1' | 't2';
type ColumnName = 'id' | 'value';
type TableColumn = `${TableName}.${ColumnName}`;
type Join = {
on: Partial<Record<TableColumn, TableColumn>>;
};
const test: Join = {
on: {
// Trigger autocomplete inside the object
}
};
đ Actual behavior
The key is inserted using double quotes (e.g., "t1.id": ...), overriding the user's preference for single quotes.
đ Expected behavior
The key should be inserted using the quote style defined in the editor's preferences (e.g., single quotes if 'single' is selected).
Additional information about the issue
When using template literal types as keys in a Record or object mapping, the TypeScript language service's autocomplete functionality consistently forces double quotes (") when inserting the suggested keys, regardless of the user's configured javascript.preferences.quoteStyle or typescript.preferences.quoteStyle settings.
https://github.com/user-attachments/assets/e562b5ab-bbd7-48bd-96f8-a9181f03ba2e
This behavior is inconsistent with how standard string keys or property names are handled and complicates code consistency when working with complex template literal types in type-safe mappings.
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
Reproduisez lâexemple de template-literal Record dans le TypeScript Playground liĂ©, avec la prĂ©fĂ©rence de guillemets de lâĂ©diteur dĂ©finie sur les guillemets simples. Commencez par suivre le chemin dâautocomplĂ©tion du TypeScript language service pour les clĂ©s dâobjet, puis vĂ©rifiez que lâacceptation dâune clĂ© suggĂ©rĂ©e conserve le style de guillemets configurĂ© Ă la fois pour les prĂ©fĂ©rences JavaScript et TypeScript.
Rédigé par le modÚle d'indexation à partir du texte de l'issue.
Ăvaluation
- Stack technique
- typescript
- Domaine
- developer-experience
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Active
- Clarté
- PlutĂŽt claire
- Accessibilité débutants
- 68/100