[TypeScript] 建立与使用AMD Library

[TypeScript] 建立与使用AMD Library

前言

使用Visual Studio开发TypeScript项目时,开发人员可以将可重用的程序代码,封装为AMD Library来提供其他开发人员使用。本篇文章介绍如何将可重用的程序代码封装为AMD Library,主要为自己留个纪录,也希望能帮助到有需要的开发人员。(本篇文章使用TypeScript 1.8开始提供的功能,请先升级再进行后续开发步骤。)

建立

首先开启Visual Studio来建立一个新项目:「myLibrary」,专案类型选择为:具有TypeScript的HTML应用程序,并且清除项目预先建立的内容档案。这个项目用来封装可重用的程序代码,提供其他开发人员使用。

  • 建立项目

  • 项目结构

接着在项目里,加入一个与项目同名的文件夹:「myLibrary」。并且在该文件夹内,加入提供其他开发人员使用的程序代码类别:「MyClass」。 (如果有更多共享类别,也是建置在myLibrary文件夹内。)

  • myLibrary\MyClass.ts

    export class MyClass {
    
        // methods
        public getMessage(): string {
    
            return "Clark";
        }
    }
    
  • 项目结构

再来还需要在项目根目录下,建立一个与项目同名的ts檔:「myLibrary.ts」,用来汇出项目里的类别。(如果有更多共享类别,也是加入到myLibrary.ts里汇出。)

  • myLibrary.ts

    // export
    export * from "./myLibrary/myClass";
    
  • 项目结构

完成类别建立之后,接着调整项目的TypeScript建置设定。将项目设定为,在建置时:编译为AMD模块、输出单一档案、并且产生宣告档案。

  • TypeScript建置设定

完成设定步骤后,存盘并且编译项目,就可以在项目的bin目录下取得编译完成的AMD Library内容档:myLibrary.d.ts、myLibrary.js、myLibrary.js.map。

  • 产出AMD Library

使用

接着开启Visual Studio来建立一个新项目:「myApp」,这个项目用来说明,如何使用封装为AMD Library的程序代码。

  • 建立项目

  • 项目结构

建立项目之后,接着调整项目的TypeScript建置设定。将项目设定为,在建置时:编译为AMD模块。

  • TypeScript建置设定

完成项目设定之后,加入一个「lib」文件夹。并且把myLibrary项目所产出的AMD Library的三个档案,加入到这个lib文件夹中。

  • 加入AMD Library

加入AMD Library之后,接着在项目预设的index.html里面,加入下列程序代码,使用RequireJS挂载AMD Library,并且执行预设的app.ts内容。

  • 挂载AMD Library

    <!-- require -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js"></script>
    <script>
        require.config({
            paths: {
                "myLibrary": "lib/myLibrary"
            }
        });
    </script>
    
  • 执行app.ts
    <!-- start -->
    <script>
        require(["app"]);
    </script>
    
  • 完整的index.html
    <!DOCTYPE html>
    
    <html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>TypeScript HTML App</title>
        <link rel="stylesheet" href="app.css" type="text/css" />
    
        <!-- require -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js"></script>
        <script>
            require.config({
                paths: {
                    "myLibrary": "lib/myLibrary"
                }
            });
        </script>
    
        <!-- start -->
        <script>
            require(["app"]);
        </script>
    
    </head>
    <body>
        <h1>TypeScript HTML App</h1>
    
        <div id="content"></div>
    </body>
    </html>
    

接着在app.ts里面,加入下列程序来使用Library里面所封装的程序代码。(编写程序代码的时候,可以发现myLibrary支持IntelliSense提示。)

  • 参考AMD Library

    // reference
    /// <reference path="./lib/myLibrary.d.ts" />
    
    // import
    import * as myLibrary from "myLibrary";
    
  • 使用AMD Library中的程序代码
    // test
    var x = new myLibrary.MyClass();
    var message = x.getMessage();
    
    // alert
    alert(message);
    
  • 完整的app.ts
    // reference
    /// <reference path="./lib/myLibrary.d.ts" />
    
    // import
    import * as myLibrary from "myLibrary";
    
    // test
    var x = new myLibrary.MyClass();
    var message = x.getMessage();
    
    // alert
    alert(message);
    
  • IntelliSense提示

最后,执行myApp。可以在执行画面上,看到一个Alert窗口显示从Library取得的讯息内容,这也就完成了使用Library的相关开发步骤。

  • 显示回传讯息

范例下载

范例程序代码:下载地址

时间: 2024-10-19 04:54:52

[TypeScript] 建立与使用AMD Library的相关文章

Visual Studio Code开发TypeScript

[Tool] 使用Visual Studio Code开发TypeScript [Tool] 使用Visual Studio Code开发TypeScript 注意 依照本篇操作步骤实作,就可以在「Windows」.「OS X」操作系统上,使用Visual Studio Code开发TypeScript. 前言 为了解决JavaScript:缺少面向对象语法.缺少编译期间错误检查...等等问题.微软提供了一个开源的TypeScript语言,让开发人员能够使用面向对象撰写TypeScript程序代

[Tool] 使用Visual Studio Code开发TypeScript

[Tool] 使用Visual Studio Code开发TypeScript 注意 依照本篇操作步骤实作,就可以在「Windows」.「OS X」操作系统上,使用Visual Studio Code开发TypeScript. 前言 为了解决JavaScript:缺少面向对象语法.缺少编译期间错误检查...等等问题.微软提供了一个开源的TypeScript语言,让开发人员能够使用面向对象撰写TypeScript程序代码,接着再透过TypeScript编译程序将程序代码编译成为JavaScript

转载 《我用 TypeScript 语言的七个月》

快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 百度网盘同步:http://pan.baidu.com/s/1jG1Q58M 分享  [中文纪录片]互联网时代   http://pan.baidu.com/s/1qWkJfcS 官方QQ群:(申请加入,说是我推荐的) App实践出真知 4

PROTEL:添加元件并且加入库中

制作元件库元件:点右键:New→Schematic Library(新建原理图元件库文件)                            →Tools                               →New Component                                                 →绘制原理图元件                            →执行Tools                                 

AIR面向IOS设备的原生扩展

来源:http://www.cnblogs.com/alex-tech/archive/2012/03/22/2411264.html ANE组成部分 在IOS平台中,ANE的组成部分基本分为AS 3.0扩展类库和Obj-C原生扩展类库两个部分,这两个部分打包后生成AIR扩展文件(.ane),最后和.swf起打包成IOS原生应用IPA文件. Action Script类库构建 ANE的AS扩展部分是一个SWC,AIR 3.0 SDK里为flash.external.ExtensionContex

Java调用DLL

1.假设现在我们要用Java代码调用C语言的方法,也就是实现a+b的方法. 首先,我们需编写一个Java类,如Test.java 1 public class Test { 2 static { 3 System.loadLibrary("jni"); 4 } 5 public native int add(int a,int b); 6 public static void main(String[] args) { 7 Test test=new Test(); 8 int res

C++ DLL中导出函数的声明的方法

定义: TESTDLLEXPORT_API int fnTestDllExport(void); TESTDLLEXPORT_API int fnTestCall(void); TESTDLLEXPORT_API int fnAddInt(int i,int j); TESTDLLEXPORT_API BOOL fnContact(char* a); 建立一个.def文件 LIBRARY TestDllExportEXPORTS fnContact @1fnAddInt @2fnTestDllE

在x64平台上调试依赖于x86的WCF服务

根据微软官方的解释,WCF(之前的版本名为"Indigo")是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的安全.可信赖.事务性的解决方案,且能与已有系统兼容协作. 云平台框架. 上次在作业的时候遇到了一件蛋疼的事情. 根据要求,需要建立一个WCF Service Library,由于我的机器是x64,考虑到兼容性,将工程编译属性调整为x86. 究其原因,我写的是一个dll文件,需要一个exe作为运行容器来调用,这

SuiteScript &gt; RecordType internalID采集步骤与结果

当你碰到一个有很多sub Fields的id需要map到js文件的时候,是不是想到一个个复制到js文件中?建立成Object,library起来,方便不同的module中共享. 一个复制,很烦,很浪费时间,有木有? 我想到了使用html页面,可以复制到excel,然后用formula自动处理后,直接copy进js文件,直接就可以使用,很省力! 步骤 1.Go to record type definition page, copy all the context under Fields sub