发布时间:2017-03-02责任编辑:朱明 浏览:1634
公司(团谱科技)现在主要用angular2做项目,angular2现在完全基于TypeScript来开发,那么就让我们来看看TypeScript有哪些优点。
都知道JavaScript是一门弱类型的语言,很明显的就是变量的定义直接用var就可以进行定义缺少了变量类型的定义,然而TypeScript的出现可以说让JavaScript逐步迈向强类型语言。什么市TypeScript呢?TypeScript为JavaScript的超集(ECMAScript6), 这个语言添加了基于类的面向对象编程。TypeScript作为JavaScript很大的一个语法糖,本质上是类似于css的less、sass,都是为了易于维护、开发,最后还是编译成JavaScript。
从类型上来说TypeScript支持JavaScript的所有的变量类型,此外还提供了枚举变量类型方便我们使用,枚举类型enum类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予有好的名字。例如:
enum Color {Red, Green, Blue};
let c: Color = Color.Green;
默认情况下,从0开始为元素编号。 你也可以手动的指定成员的数值。 例如,我们将上面的例子改成从1开始编号:
enum Color {Red = 1, Green, Blue};
let c: Color = Color.Green;
或者,全部都采用手动赋值:
enum Color {Red = 1, Green = 2, Blue = 4};
let c: Color = Color.Green;
枚举类型提供的一个便利是你可以由枚举的值得到它的名字。 例如,我们知道数值为2,但是不确定它映射到Color里的哪个名字,我们可以查找相应的名字:
enum Color {Red = 1, Green, Blue};
let colorName: string = Color[2];
alert(colorName);
此外TypeScript中的任意值any在开发中也经常用到,开发过程中有些值可能来自于动态内容,那么我们可以使用any类型来标记这些变量,例如:
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;
在对现有代码进行改写的时候,any类型是十分有用的,它允许你在编译时可选择地包含或移除类型检查。 你可能认为Object有相似的作用,就像它在其它语言中那样。 但是Object类型的变量只是允许你给它赋任意值 -- 但是却不能够在它上面调用任意的方法,即便是它真的有这个方法:
let notSure: any = 4;
notSure.ifItExists();
notSure.toFixed();
上述两种方法都不会报错
let prettySure: Object = 4;
prettySure.toFixed();
这样程序就会报错,即便是它有这个方法也是不行的。
TypeScript中的空值也是非常重要的大家都知道JavaScript中的方法都是有默认返回值的,然而像java语言中如果方法为void则认为该方法没有返回值,TyptScript的空值void也是类似的与any类型正好相反
function World(): void {
alert("Hello World");
}
此函数就认为没有返回值。
此外声明一个void变量是没有什么大用的,只能给他赋予undefind和null。
类型断言就是告诉计算机我很清楚这些数据类型,我这同样用是没错的,类型断言有两种形式。 其一是“尖括号”语法:
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
另一个为as语法:
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
两种形式是等价的。
以上就是对TypeScript基础类型的理解。
诚信工作室 供稿