zoukankan      html  css  js  c++  java
  • TypeScript 素描

    /*
    其实前面一些都是废话,因为都和C#类似.从模块开始就需要深入的去理解了
    文档反复声明了 内部模块现在称做 命令空间  外部模块称为 模块
    模块在其自身的作用域里执行,而不是在全局作用域里,也就是说模块内的变量函数类等在模
    块外部是不可见的.
    模块是自声明的,两个模块之间的关系是通过文件级别上使用 imports exports建立
    模块使用模块加载器去导入其它的模块,像CommonJS、Require.JS 作用是执行此模块代码前
    去查找并执行这个模块的做有依赖
    */
    
    /*
    说了这么多,什么才是一个模块? 上面的话比较官方,通常我们的模块是一个ts文件,但是也
    不是说一个文件就是一个真正意义上的模块,前提是文件中包含任何顶级的import或者export
    才是一个模块
    */
    
    /*
    从最基础的导出开始
    在一个模块中,我们要将需要被访问访问的 类、函数等使用 export关键字导出
    */
    interface interfaceExport { };
    class classExport { };
    //进行导出  如果对名称不满意可以使用 as 语法重命名 比如 classExport  as newName
    
    export { interfaceExport, classExport as newClassName};
    
    /*
    当我们需要在另一个模块中只导出其它模块的部分内容, 可以使用重新导出
    语法 exprot   from '模块名称' 直译就是导出一个东西,但是它不是我的,它from自xx模块
    export { interfaceExport : newinterfaceExport } from "./模块";
    export * from "模块名称"  * 代表所有内容
        * 默认导出,模块可以有一个且只能有一个默认导出.default 的好处在哪里?
          对默认的导出在导入时可以忽略其名称 语法
          export default 
    */
    
    
    /*
    导入也是非常简单的,使用 import 可以轻松进行导入,格式 import {名称} from '模块'
        * 如果模块内导出的太多, 一个一个的进行improt是非常麻烦的可以使用
          import * as NewName from '模块'
          意思是导入'模块'中所有被导出的,NewName做为它们的根
    */
    
    /*
    需要嗨皮的是,导入是懒加载的.也就是只有在使用的时候才去真正的加载,对于一些导入了
    但是并没有进行使用的是不会去加载的,这无疑提高了性能
    */
    
    //简单提一下,文件可以定义成.D.TS文件,导出的时候可以自定义名称  declare model "Name"{ export ....}
    /*
    相信对于命名空间NameSpaced大家都很熟悉,可以很方便的管理我们的类.现在TypeScript中
    也有了命名空间
    一般来说命名空间是无需使用的,因为我们有模块的概念,一个文件就是一个模块,一般来说这
    是够用的
    但是随着功能越来越多放到一个文档是不合适的,我们需要拆分成不同的文件.这时候使用命
    名空间管理是最佳选择
    */
    --- 命名空间.ts 
    namespace testNameSpace {
        export function fun1() { };
    }
    上面是命名空间.ts下的内容,里面有一个命名空间 testNameSpace
    
    ---命名空间2.ts
    namespace testNameSpace {
        export function fun2() { };
    }
    然后在命名空间2.ts下继续在testNameSpace命名空间下添加方法
    
    ---test.ts
    //使用testNameSpace空间下的fun1方法
    testNameSpace.fun1();
    实际上命名空间是一个普通的JavaScript对象,并且可以在多个文件使用,不需要导入。这听起来就是全局的,所以命名空间是不被推荐使用的,模块才是真爱
  • 相关阅读:
    ZOJ 3818 Pretty Poem
    HDU 4597 Play Game
    HDU 4497 GCD and LCM
    CSU 1335 高桥和低桥
    UVA 10791 Minimum Sum LCM
    CSU 1119 Collecting Coins
    CSU 1120 病毒
    UVA 12169 Disgruntled Judge
    HDU 1301 Jungle Roads
    POJ 1258 Agri-Net
  • 原文地址:https://www.cnblogs.com/LiangSW/p/6263359.html
Copyright © 2011-2022 走看看