TypeScript 命名空间
TypeScript学习笔记
首先创建文件夹然后终端定位到文件夹下生成 package.json
没安装cnpm就执行以下命令
第二 执行以下命令生成 tsconfig.json
然后建两文件夹 build 和 src, 然后根目录可以建html文件了, 在src目录下创建page.ts文件
第三 改 tsconfig.json里面的路径 找到 outDir 和 rootDir
"outDir": "./build" , "rootDir": "./src"
|
第四 在page.ts写入以下代码
namespace Home { class Header { constructor() { const elem = document.createElement("div"); elem.innerText = "史迪奇的头"; document.body.appendChild(elem); } } class Content { constructor() { const elem = document.createElement("div"); elem.innerText = "史迪奇的身体"; document.body.appendChild(elem); } } class Footer { constructor() { const elem = document.createElement("div"); elem.innerText = "史迪奇的脚"; document.body.appendChild(elem); } } export class Page { constructor() { new Header(); new Content(); new Footer(); } } }
|
最后在html文件中加入
<!DOCTYPE html> <html lang="cn"> <head> <meta charset="UTF-8">
<script src="./build/page.js"></script> <title>史迪奇国王</title> </head> <body> <script>
new Home.Page(); </script> </body> </html>
|
对比这个文件你会学到东西
命名空间的嵌套
接着以上代码
第一 先在src里面创建 components.js
namespace Components {
export namespace SdqComponents{ export class Sdz {} }
export class Header { constructor() { const elem = document.createElement("div"); elem.innerText = "史迪奇的头"; document.body.appendChild(elem); } } export class Content { constructor() { const elem = document.createElement("div"); elem.innerText = "史迪奇的身体"; document.body.appendChild(elem); } } export class Footer { constructor() { const elem = document.createElement("div"); elem.innerText = "史迪奇的脚"; document.body.appendChild(elem); } } }
|
第二 改page.ts
namespace Home { export class Page { constructor() { new Components.Header(); new Components.Content(); new Components.Footer(); } } }
|
第三 改 tsconfig.json里面的路径 找到 module把 commonjs改 amd 添加 outFile路径
"module": "amd", "outFile": "./build/page.js"
|
对比这个文件你会学到进步很大
import语法
page.ts用import引入
import { Header, Content, Footer } from "./components"; export class Page { constructor() { new Header(); new Content(); new Footer(); } }
|
component.ts改成以下代码
export class Header { constructor() { const elem = document.createElement("div"); elem.innerText = "This is Header"; document.body.appendChild(elem); } }
export class Content { constructor() { const elem = document.createElement("div"); elem.innerText = "This is Content"; document.body.appendChild(elem); } }
export class Footer { constructor() { const elem = document.createElement("div"); elem.innerText = "This is Footer"; document.body.appendChild(elem); } }
|
html文件 引用
<!DOCTYPE html> <html lang="cn"> <head> <meta charset="UTF-8"> <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js"></script> <script src="./build/page.js"></script> <title>史迪奇国王</title> </head> <body> <script> require(["page"], function (page) { new page.default(); }); </script> </body> </html>
|
作者: 我叫史迪奇
本文来自于:
https://sdq3.link/TypeScript-NameSpace.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议