Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeScript包管理_Typescript - Fatal编程技术网

TypeScript包管理

TypeScript包管理,typescript,Typescript,看起来TypeScript有一个很好的模块系统,但是这会取代像requirejs这样的需求吗?换句话说,当您“编译”一个typescript包时,它会为您处理所有依赖项解析吗?请举例说明 TypeScript没有运行时模块加载程序。您仍然需要提供一个在运行时使用的模块加载器,例如requirejs。TypeScript支持生成与commonJS(用于node.js脚本)和AMD加载程序(例如requireJS)兼容的JavaScript代码。要指定在“-module”中使用pass,请使用“am

看起来TypeScript有一个很好的模块系统,但是这会取代像requirejs这样的需求吗?换句话说,当您“编译”一个typescript包时,它会为您处理所有依赖项解析吗?请举例说明

TypeScript没有运行时模块加载程序。您仍然需要提供一个在运行时使用的模块加载器,例如requirejs。TypeScript支持生成与commonJS(用于node.js脚本)和AMD加载程序(例如requireJS)兼容的JavaScript代码。要指定在“-module”中使用pass,请使用“amd”或“commonjs”切换到编译器

以下是如何在TypeScript中导出模块:

export module depModule { 
    export class A { 
    }
}
下面是使用--module amd开关生成的JavaScript代码:

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

TypeScript可以发出代码,这些代码将与AMD兼容的依赖项加载程序(如requirejs)或commonjs环境(如Node)一起工作。您可以通过编译器的--module选项来控制这一点。编译器本身不会在运行时处理依赖项解析,这取决于您的工作,但它会尝试在编译时解析依赖项,以便为您提供类型信息


例如,您可以在CodePlex的测试目录中看到使用模块的项目示例。编译这些测试项目的输出是.js文件,可以使用requirejs(如果您通过--module amd)或Node(如果您通过--module commonjs)加载这些文件。

如果您的应用程序仅由typescript模块/文件组成,则可以不使用模块加载程序或其他依赖关系管理。您需要包含所有带有注释引用的依赖项,并使用编译器的--out选项。例如:

tsc --out compiled.js app.ts
这将在compiled.js中放入为app.ts生成的js及其所有依赖项,包括依赖项的依赖项。然后,生成的文件可以直接包含在带有脚本标记的html文件中。它也可以缩小。不支持在运行时加载模块