Búsqueda de sitios web

Gestión de paquetes de TypeScript


Parece que TypeScript tiene un buen sistema de módulos, sin embargo, ¿esto reemplaza la necesidad de algo como requirejs? En otras palabras, cuando "compilas" un paquete de TypeScript, ¿maneja toda la resolución de dependencias por ti? ¡Se agradecerían ejemplos!

Respuesta #1

TypeScript no tiene un cargador de módulos en tiempo de ejecución. Aún necesitarás proporcionar un cargador de módulos para usarlo en tiempo de ejecución, por ejemplo require js. TypeScript admite generar código JavaScript compatible con CommonJS (para scripts de node.js) y cargadores AMD (por ejemplo requireJS). Para especificar cuál usar, pasa el interruptor "--module" al compilador con "amd" o "commonjs".

Aquí se muestra cómo exportar un módulo en TypeScript:

export module depModule { 
    export class A { 
    }
}

y aquí está el código JavaScript generado con el interruptor --module amd:

define(["require", "exports"], function(require, exports) {
    (function (depModule) {
        var A = (function () {
            function A() { }
            return A;
        })();
        depModule.A = A;
    })(exports.depModule || (exports.depModule = {}));
})

Respuesta #2

TypeScript puede emitir código que funcionará tanto con cargadores de dependencias compatibles con AMD como requirejs, o entornos commonjs como Node. Puedes controlar esto con la opción --module del compilador. El compilador en sí no maneja la resolución de dependencias en tiempo de ejecución, eso depende de ti, pero sí intenta resolver dependencias en tiempo de compilación para poder proporcionarte información de tipos.

Puedes ver ejemplos de proyectos que usan módulos en el directorio de pruebas en CodePlex, este por ejemplo. El resultado de compilar estos proyectos de prueba son archivos .js que podrán ser cargados ya sea con, por ejemplo, requirejs (si pasas --module amd) o Node (si pasas --module commonjs).

Artículos relacionados