typescript中的命名空间

JavaScript017

typescript中的命名空间,第1张

命名空间和模块不要混用,不要在一个模块中使用命名空间,命名空间最好在一个全局的环境中使用

namespace中可以定义任意多的变量,这些变量只能在shape下可见,如果要在全局内可见的话就要使用export关键字,将其导出.

本质上是闭包,用来隔离作用域。

ts保留了这种方式,但是在我们平时的模块化开发中,也没必要使用命名空间。

如果在一个js中的namespace过于庞大,可以写多个js文件,他们共享同一个命名空间

互相引用的时候 /// <reference path = "a.ts" >

访问:

Shape.cricle()

起别名:import cricle = Shape.cricle()

ts需要静态编译,它提供了强类型与更多面向对象的内容。

ts最终仍要编译为弱类型的js文件,基于对象的原生的js,再运行。故ts相较java/C#这样天生面向对象语言是有区别和局限的

ts是由微软牵头主导的,主要来自C#

TypeScript是一个应用程序级的JavaScript开发语言。(这也表示TypeScript比较牛逼,可以开发大型应用,或者说更适合开发大型应用)

TypeScript是JavaScript的超集,可以编译成纯JavaScript。这个和我们CSS离的Less或者Sass是很像的,

我们用更好的代码编写方式来进行编写,最后还是友好生成原生的JavaScript语言。

TypeScript跨浏览器、跨操作系统、跨主机、且开源。由于最后他编译成了JavaScript所以只要能运行JS的地方,都可以运行我们写的程序,设置在node.js里。

TypeScript始于JavaScript,终于JavaScript。遵循JavaScript的语法和语义

TypeScript可以重用JavaScript代码,调用流行的JavaScript库。

TypeScript提供了类、模块和接口,更易于构建组件和维护。

TS是JS的一个超集,TS包含了JS的库和函数,TS上可以写任何的JS,调用任何的JS库。ts需要静态编译,它提供了强类型与更多面向对象的内容。

1、TypeScript 引入了 JavaScript 中没有的“类”概念

2、TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。

3、js没有重载概念,ts有可以重载

4、ts对比js基础类型上,增加了 void/never/any/元组/枚举/以及一些高级类型