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对象,并且可以在多个文件使用,不需要导入。这听起来就是全局的,所以命名空间是不被推荐使用的,模块才是真爱
  • 相关阅读:
    Spinal Tap Case
    Sorted Union
    Search and Replace
    Boo who
    Missing letters
    DNA Pairing
    Pig Latin
    Where art thou
    Roman Numeral Converter
    Redis高级客户端Lettuce详解
  • 原文地址:https://www.cnblogs.com/LiangSW/p/6263359.html
Copyright © 2011-2022 走看看