最近項目很急,因此沒有什麼時間回答關於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."); }