我们提供一些基础类型,比如数字(numbers)、字符串(strings)、结构(structures),布尔值(Boolean)等等。在TypeScript中,我们支持JavaScript中相同的类型,还提供枚举类型。
最基础的数据类型是true/false值,JavaScript和TypeScript以及其他语言把它叫做‘boolean‘类型。
var isDone: boolean = false;
跟JavaScript一样,在TypeScript中的所有数字都是浮点数。这些浮点数使用‘number‘类型。
var height: number = 6;
JavaScript用来构建web页面和服务端程序的另一个基础部分是处理文本数据(textual data)。与其他语言一样,我们使用‘string‘来指这些文本数据类型。如同在JavaScript中一样,TypeScript也使用双引号(")或单引号(‘)来包裹这些字符串数据。
var name: string = "bob"; name = ‘smith‘;
TypeScript与JavaScript一样,允许你使用数组。数组类型可以用2种方式书写。第一种方式,你可以在元素类型后面跟一个‘[]‘来表示该元素类型的数组:
var list:number[] = [1, 2, 3];
第二种方式是使用数组泛型,Array<elemType>:
var list:Array<number> = [1, 2, 3];
在JavaScript标准数据类型集合外,增加了"enum"类型。如同c#等语言一样,enum是表示一组数值更为友好的方式。
enum Color {Red, Green, Blue}; var c: Color = Color.Green;
枚举类型默认从0开始计数。但可以对其中一个成员设置值来改变这一行为。例如针对前面例子,修改为从1开始而不是从0开始计数。
enum Color {Red = 1, Green, Blue}; var c: Color = Color.Green;
或者,手动设置枚举中每一个值:
enum Color {Red = 1, Green = 2, Blue = 4}; var c: Color = Color.Green;
枚举类型一个便利的特性是可以根据数值找到值对应的名称。例如,要想知道数值"2"映射到Color枚举的哪一个,可以根据下面代码找到对应的名称:
enum Color {Red = 1, Green, Blue}; var colorName: string = Color[2]; alert(colorName);
当我们编程的时候,我们有时不得不去描述我们还不能确定的变量类型。这些值可能来自动态内容,比如来自用户自定义或者第三方库。在这些情况下,我们希望它们不参与类型检测,从而通过编译检测。为了做到这点,我们标记为‘any‘类型:
var notSure: any = 4; notSure = "maybe a string instead"; notSure = false; // okay, definitely a boolean
‘any‘类型提供一条能与现有JavaScript协作的途径,允许你逐步选择参与和不参与编译时的类型检测。如果你知道类型的某些部分,但不知道类型的其他部分,那么‘any‘类型是十分方便的。例如有个数组用了不同的数据类型:
var list:any[] = [1, true, "free"]; list[1] = 100;
在某些情况下,‘any’类型的反面可能就是‘void‘类型,它表示非任何类型。可以把它看成一个无返回值函数的返回类型:
function warnUser(): void { alert("This is my warning message"); }
[1] http://www.typescriptlang.org/Handbook#basic-types
原文:http://my.oschina.net/1pei/blog/493181