




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第typeScript入門基礎(chǔ)介紹目錄一、安裝TS二、Vscode自動編譯ts三、入門TS基礎(chǔ)數(shù)據(jù)類型接口類TS的特點:
始于javaScript歸于javaScript。強大的類型系統(tǒng)。先進的javaScript。適合開發(fā)大型項目,編譯成純js代碼,js可以運行在任何瀏覽器上。
typeScript是區(qū)分大小寫的一門語言,本篇文章主要帶你了解ts的安裝,環(huán)境配置,以及簡單的入門。
一、安裝TS
使用之前需要安裝:
npminstall-gtypescript
安裝完成之后,使用tsc-v檢查安裝之后的版本。
第一個ts文件:01.ts,代碼如下:
(()={
functionshow(msg){
return"字符串:"+msg
letstr="前端"
console.log(show(str))
})()
通過script引入html文件
script
src="./01.ts"/script
頁面正常運行,因為ts能夠支持js語法,所以文件內(nèi)直接引入使用是沒問題的,除此之外,還可以使用node命令運行該文件,也是可以正常執(zhí)行的。
如果此時,在ts文件內(nèi)加入ts語法:
//添加類型支持
(()={
functionshow(msg:string){
//添加string的意義在于傳入的msg值只能是字符串,不可以是其他類型
return"字符串:"+msg
letstr="前端"
console.log(show(str))
})()
此時瀏覽器運行時,會報錯,無法繼續(xù)執(zhí)行。
此時就需要將ts文件編譯為js文件,打開命令行工具,運行:
tsc01.ts
運行后會自動生成一個01.js文件,查看js代碼內(nèi)容如下:
functionshow(msg){
return"字符串:"+msg;
(function(){
varstr="前端";
console.log(show(str));
})();
總結(jié):
ts文件內(nèi)直接輸入js文件,在html文件引入ts文件,在瀏覽器內(nèi)是可以直接運行的。ts文件內(nèi)如果有ts語法代碼,若在html文件內(nèi)引入ts文件,直接在瀏覽器運行會報錯,此時需要先編譯為js文件。在ts文件函數(shù)中的形參,如果使用了某個類型進行修飾,那么在最終編譯的js文件中是沒有該類型的。ts內(nèi)地let修飾符,編譯后的js文件內(nèi)變成了var。
二、Vscode自動編譯ts
新建一個項目目錄,當前目錄下打開命令行工具,執(zhí)行
tsc--init
自動生成tsconfig.json文件,代碼如下:
{
"compilerOptions":{
"target":"es2016",
"module":"commonjs",
"outDir":"./js",
"esModuleInterop":true,
"forceConsistentCasingInFileNames":true,
"strict":true,
"skipLibCheck":true
}
注:
outDir表示的是ts文件編譯之后生成js文件的存放目錄。如果屬性值之后的文件夾不存在時,就會自動創(chuàng)建。
strict表示是嚴格模式。
新建index.ts文件,代碼如下:
(()={
functionshowStr(str:string){
returnstr
leta:string="前端人"
//調(diào)用函數(shù)
console.log("a",showStr(a));
})()
類型注解:函數(shù)地形參后加修飾符,用來限制傳入?yún)?shù)的類型,string表示只能為字符串類型。
在命令行運行
tsc-w
tsc-watch
自動生成js文件夾,包括index.js文件。運行該命令后,只要ts文件發(fā)生改變,就會自動編譯。
一切運行正常,沒有任何錯誤。
如果調(diào)用函數(shù)的參數(shù)傳為數(shù)值時:
console.log(showStr(123));
此時編輯器內(nèi)報錯:類型number的參數(shù)不能賦給類型string的參數(shù)。
ts能夠智能提示問題,是因為ts提供了靜態(tài)代碼分析,可以分析代碼結(jié)構(gòu)和提供的類型注解。
但是tsc編譯的時候,雖然會提示錯誤,但它依舊會編譯為js文件,js在執(zhí)行的時候不會報錯,因為js是弱類型語言。
三、入門TS
基礎(chǔ)數(shù)據(jù)類型
為布爾值類型。如:letisDone:boolean=false;number為數(shù)值類型,ts能夠支持二、八、十、十六進制數(shù)據(jù)。如:letdecLiteral:number=6;string為字符串類型。如:letname:string=bob表示數(shù)組類型。數(shù)組名后加元素類型[]加數(shù)組值。如:letlist:number[]=[1,2,3];元組類型。如:letarr:[string,number,boolean]=[str,1,true]枚舉,為一組數(shù)值賦予友好名字。如:enumColor{red,green,blue}任意類型,有時不確定傳入的值是什么類型,就可以使用any類型。如:letnotSure:any=1空值,與any正好相反,表示沒有任何類型。如:functionshow():void{}null和undefinednever類型,表示永不存在的值。functionerror(message:string):never{thrownewError(message);}
接口
接口簡單點講就是一種約束。在ts里,接口的作用就是為這些類型命名和為你的代碼或第三方代碼定義契約。
TypeScript中的接口是一個非常靈活的概念,除了可用于對類的一部分行為進行抽象以外,也常用于對「對象的形狀(Shape)」進行描述。
使用形式:
(()={
//定義一個接口
interfacePerson{
firstName:string,//添加類型限定
lastName:string
functionshowFullName(person:Person){
//添加類型限定之后,內(nèi)部會自動提示接口內(nèi)的字段
returnperson.firstName+'_'+person.lastName
constp={
firstName:"Hello",
lastName:"World"
console.log("姓名",showFullName(p));
})()
如果把p中的firstName注釋掉,就會報錯,提示:
在本實例中,接口的意義就是限定傳入showFullName函數(shù)內(nèi)的數(shù)據(jù)屬性的限制。
接口優(yōu)點:自動檢測傳入的數(shù)據(jù)是否符合接口規(guī)范,如果不符合則會報錯。
類
Typescript類介紹
傳統(tǒng)的JavaScript的程序使用函數(shù)和基于原型的繼承來創(chuàng)建可重用的組件,但對于熟悉使用面向?qū)ο蠓绞降某绦騿T來講就有些棘手,因為他們用的是基于類的繼承并且對象是由類構(gòu)建出來從ECMAScript2015,也就是ECMAScript6開始,JavaScript程序員將能夠使用基于類的面向?qū)ο蟮姆绞?。使用TypeScript,我們允許開發(fā)者現(xiàn)在就使用這些特性,并且編譯后的JavaScript可以在所有主流瀏覽器和平臺上運行,而不需要等到下個JavaScript的版本。
ts的類只是一個語法糖,本質(zhì)還是js函數(shù)實現(xiàn)的。
使用示例:
(()={
//定義一個接口
interfacePerson{
firstName:string,
lastName:string
//定義一個類
classPersonal{
//定義公共的字段屬性
firstName:string
lastName:string
fullName:string
//構(gòu)造函數(shù)
constructor(firstName:string,lastName:string){
//更新屬性數(shù)據(jù)
this.firstName=firstName
this.lastName=lastName
th
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南師范大學《機器人自主式技術(shù)》2023-2024學年第二學期期末試卷
- 心理關(guān)于記憶的課件
- 河北大學《電視新聞節(jié)目》2023-2024學年第二學期期末試卷
- 紅河衛(wèi)生職業(yè)學院《高等通風工程》2023-2024學年第二學期期末試卷
- 中國礦業(yè)大學徐海學院《專題地圖設(shè)計與編繪實驗》2023-2024學年第二學期期末試卷
- 江蘇大學京江學院《算法導論》2023-2024學年第二學期期末試卷
- 山西衛(wèi)生健康職業(yè)學院《新媒體影像創(chuàng)業(yè)》2023-2024學年第二學期期末試卷
- 建筑設(shè)計方案競標
- 寶寶育兒的心得體會
- 2025關(guān)于合同解除條件的規(guī)定
- 《中醫(yī)護理學》第三章課件
- 泵站畢業(yè)設(shè)計
- 行政事業(yè)單位合同業(yè)務控制流程圖
- 孔子練精神聰明不忘開心方_醫(yī)心方卷二十六引_金匱錄_方劑加減變化匯總
- 板房區(qū)臨建設(shè)施技術(shù)標
- 美國AAMIST79最新修訂條款解讀----史紹毅[1]
- 危險性較大的分部分項工程清單及安全管理措施
- 理事會會議決議范文
- 通用汽車精益生產(chǎn)培訓資料
- 采購部管理制度與工作流程圖
- NJB-2綜合監(jiān)測儀說明書
評論
0/150
提交評論