zoukankan      html  css  js  c++  java
  • TypeScript 命名空间

    demo.ts
    class Header {
      constructor() {
        const elem = document.createElement('div');
        elem.innerText = 'This is Header';
        document.body.appendChild(elem);
      }
    }
    
    class Content {
      constructor() {
        const elem = document.createElement('div');
        elem.innerText = 'This is Content';
        document.body.appendChild(elem);
      }
    }
    
    class Footer {
      constructor() {
        const elem = document.createElement('div');
        elem.innerText = 'This is Footer';
        document.body.appendChild(elem);
      }
    }
    
    class Page{
      constructor() {
        new Header();
        new Content();
        new Footer();
      }
    }

    这些代码编译完是这样的

    demo.js
    "use strict";
    var Header = /** @class */ (function () {
      function Header() {
        var elem = document.createElement('div');
        elem.innerText = 'This is Header';
        document.body.appendChild(elem);
      }
      return Header;
    }());
    var Content = /** @class */ (function () {
      function Content() {
        var elem = document.createElement('div');
        elem.innerText = 'This is Content';
        document.body.appendChild(elem);
      }
      return Content;
    }());
    var Footer = /** @class */ (function () {
      function Footer() {
        var elem = document.createElement('div');
        elem.innerText = 'This is Footer';
        document.body.appendChild(elem);
      }
      return Footer;
    }());
    var Page = /** @class */ (function () {
      function Page() {
        new Header();
        new Content();
        new Footer();
      }
      return Page;
    }());
    这些类都变成了一个全局变量,过多的全局变量是不可维护的。这个时候要运用模块化的思想,将这些 class 都包在一个 命名空间里面
    namespace Home{
      class Header {
        constructor() {
          const elem = document.createElement('div');
          elem.innerText = 'This is Header';
          document.body.appendChild(elem);
        }
      }
    
      class Content {
        constructor() {
          const elem = document.createElement('div');
          elem.innerText = 'This is Content';
          document.body.appendChild(elem);
        }
      }
    
      class Footer {
        constructor() {
          const elem = document.createElement('div');
          elem.innerText = 'This is Footer';
          document.body.appendChild(elem);
        }
      }
    
      export class Page{
        constructor() {
          new Header();
          new Content();
          new Footer();
        }
      }
    }
    <script>
      new Home.Page();
    </script>
  • 相关阅读:
    python初学第一节课
    关于float类型和u32类型问题
    今天的工作状态,规划未来一段时间内必须完成的事情(Record the working status of today,planning for the next period of time must be completed)
    STM32 硬件I2C初始化 I2C1_GPIO_AF_Config
    C语言编程规范--------12 宏
    C语言编程规范--------11 代码测试、维护
    C语言编程规范--------10 代码编辑、编译、审查
    C语言编程规范--------9 质量保证
    C语言编程规范--------8 效率
    C语言编程规范--------7 可测性
  • 原文地址:https://www.cnblogs.com/wzndkj/p/13171310.html
Copyright © 2011-2022 走看看