日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TypeSprict -- 基础类型

發(fā)布時間:2025/3/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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聲明變量,在初始的時候沒有賦值是不被允許的
const name1 : string 復制代碼
  • 正確寫法
const name1 : string = 'wang' console.log(name1) // 打印結果 wang 復制代碼

let

1.letconst 最大的區(qū)別'let' 允許 定義時不用賦值,但使用前必須賦值 復制代碼
  • 錯誤示范
let name1 : string // 這一步是正確的可以定義不賦值 console.log(name1) // 錯誤的 使用時候必須要賦值 復制代碼
  • 正確操作
let name1 : string // 當然也可以寫成 let name1:string = 'wang' name1 ='wang' console.log(name1) // 打印結果是wang 復制代碼

基本類型寫法

布爾類型 -- boolean

1.只能賦值true 或者 false和Boolean()對象 復制代碼
  • 賦值為true 和 false
let bool:boolean = true // 只能賦值true 或者 false 和Boolean()對象 bool = false // 重新賦值 console.log(bool) // 打印結果false 復制代碼
  • 賦值為Boolean()對象
let bool: boolean = Boolean(1); console.log(bool) // true 復制代碼

數(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ù)組泛型' 復制代碼
  • 「類型 + 方括號」
// 第一種寫法 let arr: number[] arr = [1] 復制代碼
  • 泛型
// 第二種寫法泛型 let arr2: Array<number> arr2 = [1] 復制代碼
  • 聯(lián)合類型
// 聯(lián)合類型(下面案例顯示可以是數(shù)字字符串類型) let arr3: (string|number)[] arr3 = [2,'3'] // 聯(lián)合類型泛型的形式 let arr4: Array<string|number> arr4 = [2,'3'] 復制代碼

元組類型

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ù)值
enum Roles {SUPER_ADMIN,ADIMN,USER } console.log(Roles.SUPER_ADMIN)// 返回的是0 // 后臺返回的這種數(shù)據不一定是從0 開始 我么你想自定制怎么辦 // 可以在后面去賦值,可以三個都賦值,也可以指定賦值其中一個 // 后面的排序會根據上一個進行 累加1 enum Roles2 {SUPER_ADMIN,ADIMN = 3,USER } console.log(Roles2.SUPER_ADMIN)// 返回的是0 console.log(Roles2.USER)// 返回的是4 復制代碼
  • 枚舉類型[對應枚舉數(shù)值]返回的是定義名稱
enum Roles {SUPER_ADMIN,ADIMN,USER } console.log(Roles[2])// USER 復制代碼
  • 內外部枚舉????????????

任意類型 -- 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ù) 斷言告訴他使用那個 復制代碼
  • 兩種寫法
// 尖括號寫法 let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length; // as 的寫法 let someValue1: any = "this is a string"; let strLength1: number = (someValue1 as string).length; 復制代碼
  • 函數(shù)中的應用
function getLength(something: string | number): number {if ((<string>something).length) {return (<string>something).length;} else {console.log(2)return something.toString().length;} } console.log(getLength(1)) 復制代碼

轉載于:https://juejin.im/post/5ccc1ea0e51d453b6d4d1408

總結

以上是生活随笔為你收集整理的TypeSprict -- 基础类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。