microsoft / microsoft/TypeScript
Set context of this keyword in definition file
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
set this context in typescript definition file
Suggestion
A way to change the context of this keyword in a type definition file. This is admittedly a weird feature since, to my knowledge, it doesn't really align with how modules work. Perhaps there is another way to achieve this use case.
Use Cases
Here's a video of how my application works - https://vimeo.com/315553984
I have an application that allows users to write code which will then be executed via the Function API - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
Here's a simplified version of how the app works at its core -
const userCode = `
console.log(this, foo, bar);
`;
const func = Function('foo', 'bar', userCode);
func.call({myThis: 'hello'}, 'fooString', 'barString');
My app allows users to write their code in Monaco editor and I've successfully added type definitions for the foo and bar variables via the addExtraLib method - https://microsoft.github.io/monaco-editor/api/interfaces/monaco.languages.typescript.languageservicedefaults.html
So when the user starts to type foo intellisense informs them that it is a string. I'd like to do the same for the this keyword.
Examples
See use cases ^
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.
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 examiner comment les fichiers de définition TypeScript représentent le mot-clé this et comment ces informations parviennent au service de langage de Monaco via addExtraLib. Utilisez l’exemple de l’API Function comme cas d’utilisation cible et vérifiez qu’IntelliSense de l’éditeur peut déduire le contexte this demandé sans modifier le comportement d’exécution de JavaScript.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, typescript
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100