1.TypeScript是什么?
TypeScript是javaScript的超集。
2.使用TypeScript
1)全局安裝nodejs
2)安裝TypeScript編譯器
npm i -g typescript
3.編譯ts文件
//注意:需要在ts文件同級目錄執行此命令,否則會報找不到文件錯誤
//編譯成功后,會生成一個同名的js文件
tsc 'ts文件名稱'
3.編譯優化
1)ts和編譯后的js同名沖突問題
//1.生成tsconfig.json文件
tsc init //生成tsconfig.json文件
//2.修改tsconfig.json的strict屬性為false或者注釋掉
2)修改自動編譯
//在終端執行此命令
tsc --watch
3)ts錯誤文件存在錯誤,拋出錯誤,并不自動編譯
tsc --noEmitOnError --watch
4.定義顯示類型
定義了顯示類型可以避免一些類型不對引發的錯誤。
const say(word:string){
}
say('hello')
5.降級編譯
通過修改tsconfig.json文件中的target屬性,來控制編譯出來的js文件能兼容到哪個js版本。tsconfig.json默認是es2016,也就是es7。
6.基元類型
String、Number、Boolean
7.type及interface
type:不能存在同名的情況,只能定義新的type基于一個已有的type進行擴展。
interface:可以存在同名的情況,多個接口內的屬性會自動合并。
/*
*類型
*/type Point = {x:number,y:number
}//在Point擴展一個y屬性生成一個新的類型
type onePoint = Point & {y:number
}*
*接口
*/interface Person{name:string,age:number
}interface Person {sex:string
}interface yellowPerson extends Person{color:string
}
?8.類型斷言
通過as 或者?<> 可以實現類型斷言
const div = document.getElementById('div1') as HTMLDivElementconst div2 = <HTMLDivElement>document.getElementById('div1')const x = ('hello' as unknown) as number
?9.文字類型(類似常量)
例如以下例子:使用了文字類型+ 字符串的組合方式, printText方法第2個參數只能傳left、right、center中的一個,不能傳遞其他值。
// 文本類型
function printText(s:string, alignment:'left' | 'right' | 'center'){console.log(s,alignment)
}
printText('hello', 'left')
?