microsoft / microsoft/TypeScript

In scripthost.d.ts add `WScript` interface for extendibility

Aperta
#42,610 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Awaiting More Feedback Suggestion
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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. 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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.