typescript - 3
程序员文章站
2022-05-14 13:29:00
...
命名空间
namespace IteratorPatter {
export interface Istat {} // 在命名空间里面,要使用export来暴露
export class CConcrete implements Istat { // 在命名空间里面,类可以正常实现接口,同样的,暴露也要使用export
constructor(){}
}
}
# 同一个命名空间过大,需要分割文件,那么需要使用标签引用来标识,这样就可以像在同一个文件一样编写代码
/// <reference path="Validation.ts" />
# 命名空间外可以通过namespace.Ib访问里面的接口,前提是Ib是要被export出来,不然不能访问哟
# 思考上面的代码,如果是多重嵌套的命名空间,岂不是需要namespaceA.namespaceB.namespaceC。这样就产生了别名的这一概念,可以通过 import D = namespaceA.namespaceB.namespaceC;
# 当涉及到多文件时,我们必须确保所有编译后的代码都被加载了。
第一种方式,把所有的输入文件编译为一个输出文件,需要使用--outFile标记:
tsc --outFile sample.js Test.ts
# 注意一点就是对模块不需要使用命名空间
模块解释 TS vs Node
# 相对路径
文件./root/src/featrue1/c.ts里面有语句import { moduleA } from './moduleA';
- TS
1. ./root/src/featrue1/moduleA.ts
2. ./root/src/featrue1/moduleA.tsx
3. ./root/src/featrue1/moduleA.d.ts
4. ./root/src/featrue1/moduleA/package.json (如果指定了"types"属性)
- Node
1. ./root/src/featrue1/moduleA.js
2. ./root/src/featrue1/moduleA/package.json (里面有没有main字段,有的话根据main字段)
3. ./root/src/featrue1/moduleA/index.js
# 非相对路径
文件./root/src/featrue1/c.ts里面有语句import { moduleA } from './moduleA';
- TS
1. ./root/src/featrue1/moduleA.ts
2. ./root/src/featrue1/moduleA.tsx
3. ./root/src/featrue1/moduleA.d.ts
4. ./root/src/featrue1/moduleA/package.json (如果指定了"types"属性)
1. ./root/src/moduleA.ts
2. ./root/src/moduleA.tsx
3. ./root/src/moduleA.d.ts
4. ./root/src/moduleA/package.json (如果指定了"types"属性)
- Node
1. ./root/src/featrue1/moduleA.js
2. ./root/src/featrue1/moduleA/package.json (里面有没有main字段,有的话根据main字段)
3. ./root/src/featrue1/moduleA/index.js
4. ./root/src/moduleA.js
5. ./root/src/moduleA/package.json (里面有没有main字段,有的话根据main字段)
6. ./root/src/moduleA/index.js
# 设置baseUrl来告诉编译器到哪里去查找模块。 所有非相对模块导入都会被当做相对于 baseUrl
baseUrl的值由以下两者之一决定:
- 命令行中baseUrl的值(如果给定的路径是相对的,那么将相对于当前路径进行计算)
- ‘tsconfig.json’里的baseUrl属性(如果给定的路径是相对的,那么将相对于‘tsconfig.json’路径进行计算)
下一篇: 09 IO 流之——深入了解字节流
推荐阅读
-
CSS3+JavaScript实现炫酷呼吸效果的示例代码
-
Qt_启动应用程序的3种方式
-
Surface Pro 3再次降价!纠结
-
Error in v-on handler: “TypeError: _this3.addForm.goods_cat.join is not a function
-
细节确认!小米MIX 3/LEX滑盖手机外观设计专利图曝光
-
[第三堂课]c#自学课程(3)
-
css3实现的动画效果_html/css_WEB-ITnose
-
Bootstrap3表单checkbox不能水平对齐问题_html/css_WEB-ITnose
-
PHP获取MySql新增记录ID值的3种方法_php技巧
-
Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十三】_html/css_WEB-ITnose