microsoft / microsoft/TypeScript
In scripthost.d.ts add `WScript` interface for extendibility
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
lib Update Request
I want to write a type lib to extend WScript, allow CreateObject to recognize some specified ProgId, and make the returned COMObject typed:
var app = WScript.CreateObject("Microsoft.Excel");
// ^^
// make this typed
But in scripthost.d.ts, The type of WScript is inlined with it's declearation:
declare var WScript: { /* inlined type definition */ };
To make it possible to extend, we can add a interface using the same name WScript and set this as the type of the var WScript:
interface WScript { /* type definition of WScript */ }
declare var WScript: WScript;
In thiry part lib, they could extend WScript var by extends the interface WScript. for example, In my lib, I could write:
interface WScript {
CreateObject("Microsoft.Excel"): Excel.App;
}
declare namespace Excel {
interface App {
//...
}
}
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia in scripthost.d.ts individuando la dichiarazione inline di WScript e la firma di CreateObject. Refattorizza la dichiarazione in modo che WScript sia un'interfaccia utilizzata dalla variabile globale e verifica che un'estensione dell'interfaccia di terze parti possa specializzare CreateObject per un ProgId specificato e restituire un oggetto COM tipizzato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 52/100