我先说重点!你看懂了就不用往下看了
///<reference path="2.ts" />
像上面这种代码是要编译后才有效果的,所以有些小伙伴发现教程demo也跑不了,跟命名空间啥的没关系!
正文
你如果也报我我下面这种错误,你在继续往下看,我告诉你怎么让他可以跑
好来,什么都别问!!!!!!!,跟着我贴代码
目录结构
1.ts
///<reference path="2.ts" />
var ABC=new AA.BB.CC() ;
console.log(ABC.getVal(2,5));
2.ts
namespace AA{
export namespace BB{
export class CC{
public getVal(x:number,y:number):number{
return x*y;
}
}
}
}
3.index.html (别问为啥建这个html,跟着敲!!!!)
<script type="text/javascript" src="app.js"></script>
然后!终端执行下面这个代码,这个文章意思是编译
tsc --outFile app.js 1.ts
意思是,指定一个将所有输出捆绑到一个JavaScript文件中的文件。如果“declaration”为true,还指定一个绑定所有.d.ts输出的文件。
博主简单说下,这个命令是把1.ts和他!!!引用的文件,一起打包生成app.js
好来!,你双击运行index.html
看明白了吗?没看明白?
你打开生成的app.js
他把1.ts 和2.ts都打包到一个文件之后,他才生效,到这里你应该就懂了,如果你还不懂,我这么来跟你说
你把2.ts里的代码都复制到1.ts里面,你编译就直接可以用了,也就是说,你在正常编译他不打包,他只是引用而已,vs code里,引用///<reference path="2.ts" /> 是不做打包操作的!!!!,所以不是你代码问题!!!!不用认真!!!!
别怪博主废话多?还是为了照顾刚入门的小伙伴可以理解。