最近项目很急,因此没有什么时间回答关于Xamarin.Android方面的问题,也有一段时间没有更新。主要是手头很缺人,若是有谁有兴趣
加入咱们的话,能够私聊我,这样我就能继续造福社区了,同时还有不少的好的库我也能够开源(兼容MvvmCross)。下面就我学习TypeScript。javascript
你们能够使用VS2013/2015,VS2012能够安装对应的插件,咱们直接新建(带TypeScript的HTML应用程序),并在app.ts中进行开发,
若是读者想查看对应生成的js代码能够到项目目录下查看(建议不要把app.js添加到项目,由于那是自动生成的)。java
TypeScript不一样于javascript这门弱类型语言,提供了经常使用的数据类型,这样咱们能够编写的时候提供类型检查,这样咱们在编写的时候能够看成强类型语言那样,能够避免不少在运行时才能发现的问题。下面咱们就学习TypeScript中的数据类型。数组
做为最简单的但也是最经常使用的就是布尔类型了,只有true和false这两种值,经过下面这段代码咱们能够看到TypeScript不一样于C#的(bool isDone = false)
这种形式,而是先经过var定义变量,而后在变量后跟上冒号,冒号后面才是真正的类型。若是读者尝试赋给他其余类型变量能够发现进行了类型检查,而也
是做为TypeScript带给咱们的好处之一(你们放心咱们依然能够使用到原汁原味的javascript下的var)app
--TypeScript:函数
var isDone : boolean = false;
--JavaScript工具
var isDone = false;
在TypeScript全部的数值都是单精度数值,不存在整数或者其余类型,只有Number。使用惯其余的语言的读者不要苦苦寻觅int,uint,long类型了。学习
--TypeScriptui
var height : number = 6; height = 3.545; height = -40;
--JavaScriptspa
var height = 6; height = 3.545; height = -40;
跟其余的语言同样在TypeScript中对应的字符串类型也是String,而咱们能够经过("")双引号或者('')单引号将字符串值括起来。插件
--TypeScript
var name : string = "TypeScript"; name = 'JavaScript';
--JavaScript
var name = "TypeScript"; name = 'JavaScript';
在TypeScript中你能够跟在JavaScript中同样使用数组,在TypeScript中有两种定义数组的方式,其中一个方式就在类型后面跟上([])方括号。
--TypeScript
var list: number[] = [5, 6, 8];
--JavaScript
var list = [5, 6, 8];
另外一种方式就是利用Array类型,将类型做为泛型参数传入。
--TypeScript
var list2: Array<number> = [5, 6, 8];
--JavaScript
var list2 = [5, 6, 8];
相对JavaScript,TypeScript增长了一个有用的基础数据类型,就是枚举。咱们能够利用更友好的方式替代纯数字。
--TypeScript
enum Color { Red, Green, Blue }; var c: Color = Color.Red;
--JavaScript
var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Green"] = 1] = "Green"; Color[Color["Blue"] = 2] = "Blue"; })(Color || (Color = {})); var c = 0 /* Red */;
咱们能够看到枚举默认是从0开始顺序递增的,有过C#基础的人确定知道能够修改第一个枚举的值从而
让后面的枚举值基础这个值进行递增,好比下面这个写法:
--TypeScript
enum Color { Red = 1, Green, Blue }; var c: Color = Color.Green;
--JavaScript
var Color; (function (Color) { Color[Color["Red"] = 1] = "Red"; Color[Color["Green"] = 2] = "Green"; Color[Color["Blue"] = 3] = "Blue"; })(Color || (Color = {})); var c = 2 /* Green */;
除此以外咱们也能够指定每一个枚举的值,好比下面这样。
--TypeScript
enum Color { Red = 1, Green = 2, Blue = 4 }; var c: Color = Color.Green;
--JavaScript
var Color; (function (Color) { Color[Color["Red"] = 1] = "Red"; Color[Color["Green"] = 2] = "Green"; Color[Color["Blue"] = 4] = "Blue"; })(Color || (Color = {})); var c = 2 /* Green */;
不少时候咱们须要获取枚举的字符串形式,而TypeScript不一样于C#直接使用ToString方法就能够,
而是须要经过其余方式来获取,好比下面这样。
--TypeScript
var c: Color = Color.Green; var s: string = Color[c];
--JavaScript
var c = 2 /* Green */; var s = Color[c];
虽然咱们使用了TypeScript,得到了类型检查。可是许多第三方库中的变量不会做为单一类型的值来使用,
为此TypeScript提供了另外一种类型,会跳过编译检查,可是咱们为此就会失去类型检查。
--TypeScript
var notSure: any = 4; notSure = "maybe a string instead"; notSure = false; var notSureList: any[] = [1, "fa", false]; notSureList[0] = "das";
--JavaScript
var notSure = 4; notSure = "maybe a string instead"; notSure = false; var notSureList = [1, "fa", false]; notSureList[0] = "das";
通常这种类型都是用在函数的返回值上,表示该函数没有返回值好比下面这样。
--TypeScript
function warnUser(): void { alert("This is my warning message."); }
--JavaScript
function warnUser() { alert("This is my warning message."); }