深入理解TypeScript基础类型-新闻详情

深入理解TypeScript基础类型


发布时间:2017-03-02责任编辑:朱明 浏览:1634



    公司(团谱科技)现在主要用angular2做项目,angular2现在完全基于TypeScript来开发,那么就让我们来看看TypeScript有哪些优点。

    都知道JavaScript是一门弱类型的语言,很明显的就是变量的定义直接用var就可以进行定义缺少了变量类型的定义,然而TypeScript的出现可以说让JavaScript逐步迈向强类型语言。什么市TypeScript呢?TypeScriptJavaScript的超集(ECMAScript6), 这个语言添加了基于类的面向对象编程。TypeScript作为JavaScript很大的一个语法糖,本质上是类似于cssless、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基础类型的理解。

 

 

 

 诚信工作室   供稿