最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

?typeScript入門基礎介紹

 更新時間:2022年02月17日 17:28:21   作者:前端人  
這篇文章主要介紹了?typeScript入門基礎,TypeScript?是由微軟開發(fā)的開源、跨平臺的編程語言,是?javaScript?的超集,最終被編譯為?javaScript代碼。常常被簡稱為TS支持JS、ES語法,下文將繼續(xù)其他基礎介紹,需要的朋友可以參考一下

TS 的特點:

  • 始于 javaScript 歸于 javaScript 。
  • 強大的類型系統(tǒng)。
  • 先進的 javaScript 。
  • 適合開發(fā)大型項目,編譯成純 js 代碼,js 可以運行在任何瀏覽器上。

typeScript 是區(qū)分大小寫的一門語言,本篇文章主要帶你了解 ts 的安裝,環(huán)境配置,以及簡單的入門。

一、安裝 TS

使用之前需要安裝:

npm install -g typescript

安裝完成之后,使用 tsc -v 檢查安裝之后的版本。

第一個 ts 文件:01.ts,代碼如下:

(()=>{
?function show(msg){
? return "字符串:"+msg
?}
?let str = "前端"
?console.log(show(str))
})()

通過 script 引入 html 文件

<script ?src="./01.ts"></script>

頁面正常運行,因為 ts 能夠支持 js 語法,所以文件內(nèi)直接引入使用是沒問題的,除此之外,還可以使用 node 命令運行該文件,也是可以正常執(zhí)行的。

如果此時,在 ts 文件內(nèi)加入 ts 語法:

// 添加類型支持
(()=>{
?function show(msg:string){
? //添加 string 的意義在于傳入的 msg值只能是字符串,不可以是其他類型
? return "字符串:"+msg
?}
?let str = "前端"
?console.log(show(str))
})()

此時瀏覽器運行時,會報錯,無法繼續(xù)執(zhí)行。

此時就需要將 ts 文件編譯為 js 文件,打開命令行工具,運行:

tsc 01.ts

運行后會自動生成一個 01.js 文件,查看js代碼內(nèi)容如下:

function show(msg) {
?return "字符串:" + msg;
}
(function () {
?var str = "前端";
?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 文件,代碼如下:

(() => {
?function showStr(str:string) {
? return str?
?}
?let a: 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

基礎數(shù)據(jù)類型

  • 為布爾值類型。如:let isDone: boolean = false;
  • number 為數(shù)值類型,ts 能夠支持二、八、十、十六進制數(shù)據(jù)。如:let decLiteral: number = 6;
  • string 為字符串類型。如:let name: string = "bob";
  • 表示數(shù)組類型。數(shù)組名后加元素類型[] 加 數(shù)組值。如:let list: number[] = [1, 2, 3];
  • 元組類型。如:let arr:[string,number,boolean] = ['str',1,true]
  • 枚舉,為一組數(shù)值賦予友好名字。如:enum Color { red, green, blue }
  • 任意類型,有時不確定傳入的值是什么類型,就可以使用 any 類型。如:let notSure:any = 1
  • 空值,與 any 正好相反,表示沒有任何類型。 如:function show():void { }
  • null undefined
  • never 類型,表示永不存在的值。function error(message: string): never { throw new Error(message); }

接口

接口簡單點講就是一種約束。在 ts 里,接口的作用就是為這些類型命名和為你的代碼或第三方代碼定義契約。

TypeScript 中的接口是一個非常靈活的概念,除了可用于對類的一部分行為進行抽象以外,也常用于對「對象的形狀(Shape)」進行描述。

使用形式:

(() => {
?//定義一個接口
?interface Person{
? firstName:string,//添加類型限定
? lastName:string
?}
?function showFullName(person:Person) {
? // 添加類型限定之后,內(nèi)部會自動提示接口內(nèi)的字段
? return person.firstName + '_' + person.lastName
?}
?const p = {
? 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)建出來從 ECMAScript 2015,也就是 ECMAScript 6 開始,JavaScript 程序員將能夠使用基于類的面向?qū)ο蟮姆绞?。使?TypeScript,我們允許開發(fā)者現(xiàn)在就使用這些特性,并且編譯后的 JavaScript 可以在所有主流瀏覽器和平臺上運行,而不需要等到下個JavaScript的版本。

ts 的類只是一個語法糖,本質(zhì)還是 js 函數(shù)實現(xiàn)的。

使用示例:

(() => {
? //定義一個接口
? interface Person{
? ? firstName: string,
? ? lastName:string
? }
? //定義一個類
? class Personal {
? ? //定義公共的字段屬性
? ? firstName: string
? ? lastName: string
? ? fullName: string
? ? // 構(gòu)造函數(shù)
? ? constructor(firstName: string,lastName:string) {
? ? ? //更新屬性數(shù)據(jù)
? ? ? this.firstName = firstName
? ? ? this.lastName = lastName
? ? ? this.fullName = this.firstName + this.lastName
? ? }
? }
??
? const p = new Personal('你','好')
??
? function showFullName(person: Person) {
? ? return person.firstName + person.lastName
? }
? console.log("p",showFullName(p));
})()

到此這篇關于 typeScript入門基礎介紹的文章就介紹到這了,更多相關 typeScript內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • javascript vvorld 在線加密破解方法

    javascript vvorld 在線加密破解方法

    朋友公司開發(fā)的在線JS加密站點,內(nèi)測中,自己試過不能找到加密后的源代碼,不知道還有那位大大能夠破解
    2008-11-11
  • 基于JS實現(xiàn)導航條flash導航條

    基于JS實現(xiàn)導航條flash導航條

    flash導航條在網(wǎng)站建設中應用比較廣泛,此種效果給瀏覽者帶來極好的視覺效果,非常棒,下面小編給大家介紹基于JS實現(xiàn)導航條flash導航條,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-06-06
  • javascript使用Dom改變超鏈接前面文本框的值

    javascript使用Dom改變超鏈接前面文本框的值

    javascript使用Dom改變超鏈接前面文本框的值...
    2007-08-08
  • layui 優(yōu)化button按鈕和彈出框的方法

    layui 優(yōu)化button按鈕和彈出框的方法

    今天小編就為大家分享一篇layui 優(yōu)化button按鈕和彈出框的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 超詳細JavaScript深淺拷貝的實現(xiàn)教程

    超詳細JavaScript深淺拷貝的實現(xiàn)教程

    淺拷貝是指,一個新的對象對原始對象的屬性值進行精確地拷貝;深拷貝是指,對于簡單數(shù)據(jù)類型直接拷貝他的值,對于引用數(shù)據(jù)類型,在堆內(nèi)存中開辟一塊內(nèi)存用于存放復制的對象,并把原有的對象類型數(shù)據(jù)拷貝過來。本文將實現(xiàn)JavaScript深淺拷貝,需要的可以參考一下
    2022-09-09
  • JavaScript使用ZeroClipboard操作剪切板

    JavaScript使用ZeroClipboard操作剪切板

    這篇文章主要為大家詳細介紹了JavaScript使用ZeroClipboard操作剪切板的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JavaScript實現(xiàn)美化滑塊效果

    JavaScript實現(xiàn)美化滑塊效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)美化滑塊效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 基于JavaScript實現(xiàn)全選、不選和反選效果

    基于JavaScript實現(xiàn)全選、不選和反選效果

    這篇文章主要為大家詳細介紹了基于JavaScript實現(xiàn)全選、不選和反選效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • js中async函數(shù)結(jié)合promise的小案例淺析

    js中async函數(shù)結(jié)合promise的小案例淺析

    這篇文章主要介紹了js中async函數(shù)結(jié)合promise的小案例淺析,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • js或css文件后面跟參數(shù)的原因說明

    js或css文件后面跟參數(shù)的原因說明

    經(jīng)??吹讲簧賹Ш骄W(wǎng)站測樣式或js文件后面加了一些參數(shù),主要是一你為一些并不經(jīng)常更新的頁面重新加載新修改的文件。
    2010-01-01

最新評論

区。| 芜湖市| 岳阳市| 永年县| 郸城县| 肥西县| 社会| 武鸣县| 滕州市| 汉阴县| 定襄县| 万盛区| 名山县| 朝阳区| 柘城县| 垫江县| 色达县| 尼勒克县| 神农架林区| 宜兰县| 武强县| 孝昌县| 南汇区| 康平县| 墨竹工卡县| 延庆县| 保山市| 虞城县| 桓仁| 金平| 神农架林区| 文成县| 中西区| 澄城县| 右玉县| 明星| 江北区| 皋兰县| 交城县| 扎赉特旗| 盐城市|