Devo fare riferimento alla definizione del typescript in ogni file

C’è un modo per dire a typescript di usare un certo file (o un insieme di file) come definizione per tutto ciò che è compilato?

La mia unica alternativa al momento è quella di aggiungere qualcosa di simile in ogni singolo file typescript (che sembra goffo):

///  

Quando si utilizza il sistema di moduli interni di TypeScript, è ansible evitare di inserire qualsiasi tag nel codice. Personalmente lo faccio perché non voglio codificare i percorsi (realistici o assoluti) all’interno del codice mentre muovo continuamente le cose.

Un modo per farlo è assicurandosi che tutti i file di dichiarazione richiesti e i file di origine TypeScript siano passati al compilatore come argomenti durante la compilazione.

L’uso di gulp insieme a gulp-typescript semplifica questa attività. Puoi impostare noExternalResolve in gulp-typescript su true e creare attività di gulp che prendano tutti i tuoi file .d.ts insieme ai tuoi sorgenti e li colleghino al compilatore. Quando si tsd.d.ts tsd nello stack, è sufficiente passare il file tsd.d.ts che contiene riferimenti a tutti gli altri file di definizione installati tramite tsd .

UPDATE per TypeScript> = v1.5 : puoi usare un file tsconfig.json e il compilatore otterrà correttamente l’ordine delle classi. Ciò elimina la necessità di usare gulp-typescript alltogether. È ansible scegliere di avere tutti i file elencati esplicitamente nel file tsconfig.json , o lasciare completamente la proprietà dei files per includere tutti i files *.ts/*.tsx all’interno della directory in tsconfig.json risiede tsconfig.json (comprese tutte le sottocartelle).

Un esempio di tsconfig.json potrebbe essere simile a:

 { "compilerOptions": { "target": "ES5", "module": "commonjs", "lib": [ "es5", "es2015.promise", "dom" ] }, "include": [ "src/**/*.ts" ] } 

Quello che ho imparato finora è che /// -ing un modulo con commenti di riferimento non è un buon metodo.

Ad esempio: nel caso in cui tu abbia un file Foo e un file Bar . Entrambi i file usano jquery, ma solo file Foo ha un commento di riferimento a jquery. Se il file Foo viene eliminato per qualche motivo, la barra dei file è danneggiata, poiché manca il riferimento.

Se si utilizza TypeScript> = 2.0, è meglio definire i file di definizione TypeScript (.d.ts) nel file tsconfig.json nella sezione “file” .

Questo potrebbe apparire come questo:

 { "compileOnSave": true, "compilerOptions": { "noImplicitAny": true, "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5", "outDir": "./Scripts/" }, "files": [ "./src/foo.ts", "./src/bar.ts", "./Scripts/typings/jquery/jquery.d.ts", "./Scripts/typings/jqueryui/jqueryui.d.ts", "./Scripts/MicrosoftMaps/Microsoft.Maps.d.ts" ] } 

L’uso della direttiva /// (commenti di riferimento) è spesso usato negli esempi per farti iniziare rapidamente, ma non è una buona pratica. Anche molti esempi provengono da una versione

Alcuni IDE rilevano automaticamente tutti i file in un progetto (Visual Studio).

Per tutto il resto, puoi creare un file _references.ts e inserire tutti i tuoi commenti di riferimento, quindi devi solo aggiungere:

 ///  

… per ogni file (invece di molti).

L’IDE può supportare anche i file tsconfig .

Questa domanda è un duplicato delle definizioni dei dattiloscritti di riferimento in un unico file, invece di tutti i file JS?

La risposta è, per ora, aggiungere ogni file che si desidera fare riferimento alla sezione “file” del file tsconfig.json. Sono ancora molte righe, ma tutto in un unico file.

In futuro, quando verrà rilasciato Typescript 2, potrai utilizzare la sezione “filesGlob” e risolvere il problema in due righe.

Ho iniziato di recente con TypeScript e come ho capito la risoluzione dei moduli interni è che sì, è ansible compilare tutti i file .ts dalla directory di tsconfig.json e tutte le sue sottodirectory, a condizione che non sia impostato .ts file .ts in esso senza /// .

Ma l’ordine in cui i file .ts sono compilati nei file .js risultanti non è determinato dalle dipendenze che hanno i file (o le classi che contengono). Quindi è ansible avere una situazione in cui la class figlia è compilata prima di quella genitore (il figlio eredita dalla relazione genitore). Quindi il codice non verrà eseguito, anche se è stato compilato correttamente. Si lamenterà che non è in grado di capire la class genitore all’interno della class figlio. Pertanto è necessario aggiungere un /// come suggerimento al compilatore per risolvere le dipendenze tra i file .ts .

Questo è ciò che vuole la documentazione di Typescript:

La direttiva /// è la più comune di questo gruppo. Serve come una dichiarazione di dipendenza tra i file.

I riferimenti a tripla barra indicano al compilatore di includere file aggiuntivi nel processo di compilazione.

Servono anche come metodo per ordinare l’output quando si utilizza –out o –outFile. I file vengono emessi nella posizione del file di output nello stesso ordine dell’input dopo il passaggio di preelaborazione.