Esiste un modo per importare o annotare moduli tipografico tale che i moduli AMD esterni verranno automaticamente inclusi come dipendenze quando si genera un modulo compatibile con AMD ?:Comprende automaticamente i deps AMD nel modulo AMD Typescript?
tsc --module AMD example.ts
Ho cercato di includere sia compreso un riferimento * .d.ts di file, e le dichiarazioni di esportazione di dichiarare:
///<reference path='./lib/knockout-2.2.d.ts' />
export declare var $;
export declare var _;
export module example {
export class Example {
// whatever
}
}
Tuttavia il modulo generato non include questi:
define(["require", "exports"], function(require, exports) {
(function (example) {
var Example = (function() {
function Example() { }
return Example;
})();
example.Example = Example;
})(exports.example || (exports.example = {}));
var example = exports.example;
})
Vorrei davvero evitare di creare moduli "finti" qui.
Sembra una bella soluzione e il loro utilizzo potrebbe essere quella di consentire l'importazione direttamente moduli AMD:
var $ = import('jquery'); // This is a requirejs/AMD module, not a typescript file.
ma io non so come fattibile che è.
Edit:
E ho anche provato questo approccio menzionato qui: Import TypeScript module using only ambient definition for use in amd
import knockout = module("./lib/knockout-2.2.d.ts");
...
ma ottenere questi errori di compilazione:
example.ts(1,32): The name '"./lib/knockout-2.2.d.ts"' does not exist in the current scope
example.ts(1,32): A module cannot be aliased to a non-module type
Hai trovato una buona soluzione per questo? –
No, nel mio caso ho iniziato a rendermi conto che era più facile concatenare la mia applicazione Typescript a un singolo file ('tsc --out') invece di preoccuparmi di AMD, dal momento che non ero in grado di caricare nulla. – 7zark7
Ho appena trovato /// - ma posso testarlo per primo quando torno a casa. –