TypeSprict -- 基础类型
生活随笔
收集整理的這篇文章主要介紹了
TypeSprict -- 基础类型
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
TypeSprict -- 基礎類型
1.'TypeSprict ' 和 'JavaSprict' 的類型是基本一致,'TypeSprict' 依次是:1.1 'boolean' -- 布爾類型,定以后可以賦值true/false 和Boolean()對象1.2 'number' --數(shù)字類型,,定以后可以賦值'2/8/10/16進制','整數(shù)類型','小數(shù)類型','NaN','Infinity(表示無窮大)'1.3 'string' -- 字符串類型1.4 '數(shù)組類型' -- '類型[]' /' Array<類型>'1.5 '元組類型' -- '[類型]'1.6 'enum' -- 枚舉1.7 'any' -- 任意類型1.8 'void' -- 空置,定義方法時候沒有返回值使用1.9 'null/undefined' -- 'Null 和 Undefined'1.10'never' -- 不存在類型一般用于錯誤處理函數(shù).例如'拋出異常'/'死循環(huán)'1.11'object' -- 對象1.12'類型斷言' -- (筆者目前覺得是指定某個類型似做某件事) 2.基本類型使用的時候,通過冒號分割,以冒號左邊為變量名,右面是變量的 類型 3.下面的案例建議在剛才的'example' 文件下創(chuàng)建一個'.ts'文件,并且在這個文 件中引入對應在'example' 創(chuàng)建的ts文件,例如: 在'example' 創(chuàng)建了一個 'basic-type.ts'文件,在'index.ts' 引入時需要寫:import './example/basic-type' 4.注意'let' 和 'const' 變量聲明修飾問題,在第一個案例中會詳細說明,其他 案例同理 復制代碼let 和 const 注意事項
1.兩者區(qū)別'const' 必須定義就賦值,但'let' 定義時候可以不賦值,但使用時候 必須賦值 復制代碼const
- 錯誤示范 如果使用const聲明變量,在初始的時候沒有賦值是不被允許的
- 正確寫法
let
1.let 和 const 最大的區(qū)別'let' 允許 定義時不用賦值,但使用前必須賦值 復制代碼- 錯誤示范
- 正確操作
基本類型寫法
布爾類型 -- boolean
1.只能賦值true 或者 false和Boolean()對象 復制代碼- 賦值為true 和 false
- 賦值為Boolean()對象
數(shù)字類型 -- number
1.ts 和 js 一樣,TypeScript里的所有數(shù)字都是浮點數(shù)。不想java中有整數(shù)類 型、雙精度類型等等,因為'ts' 的 數(shù)字表現(xiàn)形式是'number' 2.定義成number 只能賦值有:'二進制'、'八進制'、'十進制'、'十六進制'、'整數(shù)類型和小數(shù)類型(整數(shù)類型可以算進十進制)'、'NaN(非數(shù)字類型)'、'Infinity(表示無窮大)' 復制代碼可以參考js數(shù)字類型 -- 作者 醬路油過
let binNum:number = 0b110 // 二進制 let octNum:number = 0o6 // 八進制 let num:number = 6// 十進制 let hexNum:number = 0x6 // 十六進制 let maxNum:number = Infinity // 無窮大 let minNum:number = -Infinity // 無窮小 let isNaNum:number = NaN // 表示非數(shù)值類型 console.log(binNum) // 6 console.log(octNum) // 6 console.log(num) // 6 console.log(hexNum) // 6 console.log(maxNum) // Infinity console.log(minNum) // -Infinity console.log(isNaNum) // NaN 復制代碼字符串類型 -- string
1.字符串也支持es6的`` 拼接寫法 復制代碼// 字符串類型 let num:number = 1 let str: string str = 'abc' str = `數(shù)值${num}` // 使用es6 拼接 `` console.log( str ) 復制代碼數(shù)組類型
1.數(shù)組類型是用來限制數(shù)組內部元素的類型,寫法有兩種 '「類型 + 方括號」表示法','數(shù)組泛型' 復制代碼- 「類型 + 方括號」
- 泛型
- 聯(lián)合類型
元組類型
1.元組類型 固定長度固定類型 2.順序必須一一對應 3.2.6版本后不不準在越界超過定義數(shù)組長度 4.但是可以'push' 往里面添加元素,但只能添加定義好的聯(lián)合類型 復制代碼let tuple: [string, number, boolean] tuple = ['a',1,true] 復制代碼枚舉類型 -- enum
1.寫法:'enum 變量名 {}',變量名第一個單詞一般大寫 2.使用場景:當后臺開發(fā)人員將一些特定的內容通過,特殊含義的數(shù)字提供給 我們時候,這個舉個例子:權限后臺返回給我們0 代表管理員,1代表普通 用戶,我們需要結合寫一些注釋提供給其他接下來的維護,前端人員說明,現(xiàn) 在可以利用枚舉值 3.默認順序從0開始 復制代碼- 枚舉類型定義參數(shù)點定義變量返回的是數(shù)值
- 枚舉類型[對應枚舉數(shù)值]返回的是定義名稱
- 內外部枚舉????????????
任意類型 -- any
1. 這些值可能來自于動態(tài)的內容,比如來自用戶輸入或第三方代碼庫。 這 種情況下,我們不希望類型檢查器對這些值進行檢查而是直接讓它們通過編 譯階段的檢查。 那么我們可以使用any類型來標記這些變量 2.使用any 等同于 :let something;something = 'seven';something = 7; 復制代碼// any任意類型 少用 let value: any value = 1 value = '1' // 利用any 定義數(shù)組 const arr4: any[] = [1,'a'] 復制代碼空值 -- void
1.它表示沒有任何類型 2.當變量定義的時候只能賦值'undefined' (官方文檔說變量定義這個一般沒多大用) 3.變量的時候也可以賦值null 但需要修改配置文件 4.當函數(shù)定義的時候表示函數(shù)沒有任何返回值 復制代碼let anyParams: void = undefined // let anyParams2:void = null 可以賦值null 但需要修改配置文件// 沒有返回值的函數(shù) const consoleText = (text:string):void => {console.log(text) } consoleText('測試') 復制代碼Null 和 Undefined
1.如果開啟嚴格模式不能吧其他模式的值設置為null 和 undfined 2.與 void 的區(qū)別是,undefined 和 null 是所有類型的子類型。也就是說 undefined 類型的變量,可以賦值給 number 類型的變量 復制代碼let u: undefined u = undefined // 只能是undefined類型 let n: null n = null // 只能是null 類型 復制代碼不存在的類型 -- never
1.永遠不存在值的類型,一般用于錯誤處理函數(shù).例如'拋出異常'/'死循環(huán)' 復制代碼// never 類型 不存在的類型 const errorFunc = (message: string): never => {throw new Error(message) } // 死循環(huán) const infiniteFunc = (): never => {while(true){} } // 任意類型都可以賦值 never 但是never 不能賦值任意類型 // 立即執(zhí)行函 類型是never 下面是 let test:number const infiniteFunc2 = ((): never => {while(true){} })()test = infiniteFunc2 // 其他 類型可以賦值never類型 // infiniteFunc2 = test never類型不可以賦值其他類型 復制代碼對象 -- object ??????
1.就是我們熟知的object類型 復制代碼let obj:object = {name:"wang" } function objFun(obj:object):void{console.log(obj) } objFun(obj) 復制代碼類型斷言-- (筆者目前覺得是指定某個類似做某件事)
1.兩種寫法:'<類型>值' 或者 '值 as 類型' 2.當我們使用一些聯(lián)合類型的時候,不同的聯(lián)合類型是具有不同屬性,例如 數(shù)字就不存在字符串長度的方法,但是為了區(qū)分聯(lián)合類型傳遞的參數(shù)去做不 一樣方法,就需要使用到類型斷言 3.它沒有運行時的影響,只是在編譯階段起作用。 TypeScript會假設你,程序員,已經進行了必須的檢查。 4.下面函數(shù)中的應用如果是js的話傳入的數(shù)字,數(shù)字.length 會對應'undefined' 代碼不會出現(xiàn)問題的,但因為ts 強類型,他會去查你類型中是否有這個方法 讓你通過斷言去做不同的操作 5.簡單的說因為ts給我們做了強制的判斷,因此我們也要對指定的聯(lián)合參數(shù) 斷言告訴他使用那個 復制代碼- 兩種寫法
- 函數(shù)中的應用
轉載于:https://juejin.im/post/5ccc1ea0e51d453b6d4d1408
總結
以上是生活随笔為你收集整理的TypeSprict -- 基础类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git远程易错点
- 下一篇: 想实现高德/百度示例中 源代码编辑器+效