基于对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");
}