Ts Day1

官網(wǎng)文檔鏈接

typescript是javascript的超集,所以js能干的是ts都能干。ts簡單理解無非就是加了類型的js,通過tsc可以將編寫的ts代碼轉(zhuǎn)化成js代碼,所以web app可以用ts寫,node app也可以用ts寫,只是最后要有一步代碼的轉(zhuǎn)化。

Type(類型)

  • “js是沒有類型的”,也就是說一個變量在賦值之后是可以賦其他類型的值的。
var name = 'Mike';//ok
name = 5;//ok

如果只是簡單的測試,這上面的代碼是沒問題的。但在一個大型的應(yīng)用中,一個變量應(yīng)該有它對應(yīng)的實際意義,顯然name是個名字,那么我們在之后使用這個變量的地方,都期望是個字符串而不應(yīng)該給它賦值5。
在ts中,很重要的一點就是類型聲明。在確定了一個變量的類型之后,之后的使用過程中就不能修改它的類型。

var name:string = 'Mike';//ok
name = 5;//error

在之后的那么的name的使用過程中,都要按照string類型來處理,否則tsc就會提示你有類型錯誤。

  • ts中使用的類型跟js中是一樣的,有原生類型(boolean,number,string),數(shù)組,對象,自定義對象。
var name:string = 'Mike';
var age:number = 18;
var isLive:boolean = true;
//names數(shù)組。類型定義就是元素的類型后面加上個方括號
var names:string[] = ['Mike','James','Nick'];
//sayHello的類型是一個方法,參數(shù)是一個字符串,返回值也是一個字符串
var sayHello:(name:string) => string;
sayHello = function(name:string){
  return 'Hello,'+name;
}
  • 接口(interface)是ts中獨有的用來描述‘事物外形’(shape)的技術(shù)。
interface Person{
  name:string;
  age:number;
}
var person = {
  name:'Mike',
  age:18;    
}

接口其實是不存在的,在最后導(dǎo)出的js文件中什么也看不到,它是為了類型檢查而來的

  • 數(shù)組中所有的元素的類型都是相同的,所以在push等操作的時候會對目標元素的類型進行判斷,如果不一樣就會報錯。這樣的好處就是如果我們要對數(shù)組的元素進行操作,那么我們在開始之前就明確知道這些元素是什么類型的,它們到底長啥樣,有啥屬性和方法。
  • 有類型就有類型轉(zhuǎn)化。ts中類型轉(zhuǎn)化要用明確的方式去說明,語法就是:<type>,type是目標類型。
interface Person{
  name:string;
}
interface Man{
  name:string;
  age:number;
}
//ok.因為后面的對象符合Person接口所描述的對象外形
var person:Person = {
  name:'Mike',
  age:18
}
var man:Man = {
  name:'Mike',
  age:18
}
var aMan:Man = person;//error
var bMan:Man = <Man>person;//ok
var name:string = 'Mike';
var age:number = <number>name;//error
//雖然編譯的時候可以通過,但只是說可以通過編譯,這么用是十分危險的,指代不明。
var age:number = <number><any>name;//ok
//上面用到了ts中的一個萬能類型any,任意的。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 20- 枚舉,枚舉原始值,枚舉相關(guān)值,switch提取枚舉關(guān)聯(lián)值 Swift枚舉: Swift中的枚舉比OC中的枚...
    iOS_恒仔閱讀 2,428評論 1 6
  • 慕課網(wǎng)@JoJozhai 老師 TypeScript入門課程分享 TypeScript入門 ES5,ES6,JS,...
    shangpudxd閱讀 10,641評論 0 22
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,596評論 19 139
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 4,104評論 0 6
  • 倪文達獨自在客廳里,這段時間他一直心事重重,展開自己的左手,他默默的看著,那么堅硬和結(jié)實的手,那天就是用這只手把兒...
    魔寧閱讀 313評論 0 0

友情鏈接更多精彩內(nèi)容