对于程序来说我们需要基本的数据单元,如:numbers, strings, structures, boolean 等数据结构。在typescript中我们支持很多你所期望在javascript中所拥有的数据类型系统。
在javascript和typescript中也具有最基本的逻辑断言值true/false,采用’boolean’类型。
1
<code>var</code> <code>isdone: boolean = </code><code>false</code><code>;</code>
如javascript,typescript所有的数值类型采用浮点型计数,其类型为‘number’。
<code>var</code> <code>height: number = 6;</code>
在webpages的javascript或者服务端的应用程序最基本的功能就是处理文本数据。在其他语言中大多使用’string’去代表文本数据类型。typescript和javascript一样也是用双引号(“)或者单引号包裹文本数据。
2
<code>var</code> <code>name: string = </code><code>"bob"</code><code>;</code>
<code> </code><code>name = </code><code>'smith'</code><code>;</code>
在typescript中如javascript一样允许我们操结合操作。数组类型可以使用下边两种方式之一。
第一种方式,你可以在数据类型之后带上’[]‘:
<code>var</code> <code>list:number[] = [1, 2, 3];</code>
第二种方式,也可以采用泛型的数组类型:
<code>var</code> <code>list:array<number> = [1, 2, 3];</code>
typescript为javascript新增了枚举这种标准的集合数据类型。和在c#中一样,枚举是为一组数值类型一组更友好的名称:
<code>enum</code> <code>color {red, green, blue};</code>
<code>var</code> <code>c: color = color.green;</code>
默认枚举类型其实数值从0开始,你可以可用手动设置某一个成员的数值。例如我们可以将上文的起始值定为1:
<code>enum</code> <code>color {red = 1, green, blue};</code>
或是手动设置全部的枚举成员:
<code>enum</code> <code>color {red = 1, green = 2, blue = 4};</code>
枚举类型可以和容易从一个数值类型获取对应枚举名称。例如我们有一个数值类型2,但不确认将匹配哪一个枚举成员,那么我们可以如下使用:
3
4
<code>var</code> <code>colorname: string = color[2];</code>
<code>alert(colorname);</code>
有时我们需要描述一些我们不知道的什么写进应用的动态数据类型,这可能来自第三方用户或者lib。在这里我们希望该数据不要加入typescript的类型检查,是的此值通过编译时检查。为此我们可以采用‘any’类型标注:
<code>var</code> <code>notsure: any = 4;</code>
<code>notsure = </code><code>"maybe a string instead"</code><code>;</code>
<code>notsure = </code><code>false</code><code>; </code><code>// okay, definitely a boolean</code>
‘any’类型是一种强大的兼容存在的javascript库的类型系统。他允许跳过typescript的编译时类型的检查。
‘any’类型对于我们只知道部分数据类型,但是不是所有的数据类型的类型系统。如一个混合了多种类型的集合数组。
<code>var</code> <code>list:any[] = [1, </code><code>true</code><code>, </code><code>"free"</code><code>];</code>
<code>list[1] = 100;</code>
和‘any’相对的数据类型则是’void‘,它代表没有任何数据类型。我们常用的一个方法没有任何返回值:
<code>function</code> <code>warnuser(): void {</code>
<code> </code><code>alert(</code><code>"this is my warning message"</code><code>);</code>
<code>}</code>