你的位置:首页 > Java教程

[Java教程]TypeScript Handbook 1——基本类型(翻译)


原文出处:

http://www.typescriptlang.org/Handbook

基于对web开发的需要和对安神的崇拜,打算学习一下typescript。

能力有限,基本属于在自己认识的基础上进行的翻译,错误难免,主要是通过翻译来学习。

基本类型
在编程中我们需要用到的一些简单的数据元素,比如:数值,字符串,结构体,布尔型,等等。
如你所愿,在javascript里面的那些数据类型,TypeScript都支持,
with a convenient enumeration type thrown in to help things along.(这句暂时没理解好)

布尔型(Boolean)
最基本的数据类型是简单的真或假,在javascript和TypeScript(以及其他语言)中定义为'boolean'。

var isDone: boolean = false;

 

数值型(Number)
和JavaScript一样,在TypeScript中所有的数值类型都是浮点类型。这些浮点类型值被定义为'number'。

var height: number = 6;

 

字符串(String)
用javascript编写网页和服务器程序时,另一个基本的部分就是针对文本数据的工作。
和其他语言一样,我们用'string'来定义文本数据类型,和javascript一样,typescript也使用双引号(")
或者单引号(')把字符串数据括起来。

var name: string = "bob";name = 'smith';

 

数组(Array)
typescript和javascript一样,允许你使用数组。数组类型可以用两种方法中的任何一种来定义。
第一种,你可以通过元素的类型接中括号[]来表示一个指定元素类型的数组:

var list:number[] = [1, 2, 3];

第二种,使用通用的数组类型,Array<元素类型>:

var list:Array<number> = [1, 2, 3];

 

注:我个人喜欢第二种。

枚举(Enum)
'enum'是对javascript中标准的集合类型的有用扩展。像其他语言,比如C#,枚举可以为集合类型的数值定义一个更加友好的名称。

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,但是不确定它和枚举里面的哪个元素匹配,

我们可以通过值查找它的名称:

enum Color {Red = 1, Green, Blue};var colorName: string = Color[2];alert(colorName);

变体(Any)

当我们写程序时,可能需要定义一个还不知道具体类型的变量。这些值可能来自动态的内容,例如从用户或第三方库。
在这些情况下,我们要选择退出类型检查,并让值通过编译时检查。这时,我们通过'any'来标记:

var notSure: any = 4;notSure = "maybe a string instead";notSure = false; // okay, definitely a boolean

any类型在现有的javascript中是一个强大有力的方法,允许您在编译过程中逐步选择和退出类型检查。

注:在我看来是兼容javascript的弱类型。
any类型在你可能只是知道该类型的某一部分内容时,很有用。例如,你可能定义一个数组,但是这个数组混合了不同的类型:

var list:any[] = [1, true, "free"];list[1] = 100;

注:类似Delphi的variant,或者TValue。

无类型(Void)
也许有时候,any类型并不能准确表示'无',即没有任何类型的类型,不能用某种类型类表示。
您通常可以将此视为不返回值的返回类型的函数:

function warnUser(): void {alert("This is my warning message");}