国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

TypeScript -- 基礎(chǔ)類型

這篇具有很好參考價(jià)值的文章主要介紹了TypeScript -- 基礎(chǔ)類型。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

TypeScript – 基礎(chǔ)類型

    1 .'boolean' -- 布爾類型,可以賦值true/false 和Boolean()對(duì)象
    2. 'number' -- 數(shù)字類型,可以賦值'2/8/10/16進(jìn)制','整數(shù)類型',
       '小數(shù)類型','NaN','Infinity(表示無(wú)窮大)'
    3. 'string' -- 字符串類型
    4. '數(shù)組類型' -- '類型[]' /' Array<類型>'
    5. '元組類型' -- '[類型]'
    6. 'enum'    -- 枚舉
    7. 'any'     -- 任意類型
    8. 'void'    -- 空置,定義方法時(shí)候沒(méi)有返回值使用
    9.'null/undefined' -- 'Null 和 Undefined'
    10. 'never'  -- 不存在類型一般用于錯(cuò)誤處理函數(shù).例如'拋出異常'/'死循環(huán)'
    11. 'object' -- 對(duì)象
    12. '類型斷言' --  手動(dòng)指定一個(gè)值的類型。

let 和 const

兩者區(qū)別'const' 必須定義就賦值,'let' 定義時(shí)候可以不賦值,但使用時(shí)候
必須賦值
  • 錯(cuò)誤示范
// const
const name1 : string // ts會(huì)校驗(yàn) 定義時(shí)必須要賦值
// let
let name2 : string // 這一步是正確的可以定義不賦值
console.log(name2) // 錯(cuò)誤的 使用時(shí)候必須要賦值
  • 正確寫法
// const
const name1 : string = 'Tom'
console.log(name1)  // 打印結(jié)果 Tom
// let
let name2 : string // 當(dāng)然也可以寫成 let name2:string = 'Anne'
name1 ='Anne'
console.log(name2) // 打印結(jié)果是Anne

基本類型寫法

布爾類型 – boolean

1.只能賦值true 或者 false和Boolean()對(duì)象
  • 賦值為true 和 false
let bool:boolean = true // 只能賦值true 或者 false 和Boolean()對(duì)象
bool = false // 重新賦值
console.log(bool) // 打印結(jié)果false
  • 賦值為Boolean()對(duì)象
let bool: boolean = Boolean(1)
console.log(bool) // true

數(shù)字類型 – number

1.ts 和 js 一樣,TypeScript里的所有數(shù)字都是浮點(diǎn)數(shù)。不像java中有整數(shù)類
型、雙精度類型等等,因?yàn)?span id="n5n3t3z"    class="token string">'ts' 的 數(shù)字表現(xiàn)形式是'number'
2.定義成number 只能賦值有:
    '二進(jìn)制''八進(jìn)制'、'十進(jìn)制'、'十六進(jìn)制'、
    '整數(shù)類型和小數(shù)類型(整數(shù)類型可以算進(jìn)十進(jìn)制)''NaN(非數(shù)字類型)'、
    'Infinity(表示無(wú)窮大)'

使用 number 定義數(shù)值類型

let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
// ES6 中的二進(jìn)制表示法
let binaryLiteral: number = 0b1010;
// ES6 中的八進(jìn)制表示法
let octalLiteral: number = 0o744;
let notANumber: number = NaN;
let infinityNumber: number = Infinity;

編譯結(jié)果

var decLiteral = 6;
var hexLiteral = 0xf00d;
// ES6 中的二進(jìn)制表示法
var binaryLiteral = 10;
// ES6 中的八進(jìn)制表示法
var octalLiteral = 484;
var notANumber = NaN;
var infinityNumber = Infinity;

字符串類型 – string

let str: string = 'abc'
str = `字符串: ${ str }` //  字符串也支持es6的`` 拼接寫法
console.log( str )

數(shù)組類型

數(shù)組類型是用來(lái)限制數(shù)組內(nèi)部元素的類型,有兩種寫法
1.'「類型 + 方括號(hào)」表示法'
2.'數(shù)組泛型'
  • 「類型 + 方括號(hào)」
// 第一種寫法
let arr: number[]
arr = [1,2,3,4]
  • 泛型
// 第二種寫法泛型
let arr: Array<number>
arr = [1,2,3,4]
  • 聯(lián)合類型
let arr: (string|number)[] // 既可以是數(shù)字也可以是字符串類型
arr = [1,'abc']

// 聯(lián)合類型泛型的形式
let arr: Array<string|number>
arr = [1,'abc']

元組類型

數(shù)組合并了相同類型的對(duì)象,而元組(Tuple)合并了不同類型的對(duì)象。
1.元組類型:固定長(zhǎng)度固定類型
2.順序必須一一對(duì)應(yīng)
3.是可以'push' 往里面添加元素,但只能添加定義好的聯(lián)合類型
let tom: [string, number, boolean]
tom = ['abc', 1, true]

枚舉類型 – enum

枚舉(Enum)類型用于取值被限定在一定范圍內(nèi)的場(chǎng)景,比如一周只能有七天,顏色限定為紅綠藍(lán)等。
  • 枚舉定義
//  簡(jiǎn)單例子
enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; // 枚舉成員默認(rèn)會(huì)被賦值為從 0 開始遞增的數(shù)字

TypeScript -- 基礎(chǔ)類型,【前端】,TypeSprict

// 也可以手動(dòng)賦值 
enum Days {Sun = 7, Mon = 1, Tue, Wed, Thu, Fri, Sat};

console.log(Days["Sun"] === 7); // true
console.log(Days["Tue"] === 2); // true
console.log(Days["Sat"] === 6); // true

TypeScript -- 基礎(chǔ)類型,【前端】,TypeSprict

  • 枚舉項(xiàng)有兩種類型:常數(shù)項(xiàng)(constant member)和計(jì)算所得項(xiàng)(computed member)。
// 上面的例子是常數(shù)項(xiàng),下面是一個(gè)典型的計(jì)算所得項(xiàng)的例子

enum Color {Red, Green, Blue = "blue".length} // "blue".length 就是一個(gè)計(jì)算所得項(xiàng)

打印出來(lái)是這個(gè)結(jié)構(gòu)
TypeScript -- 基礎(chǔ)類型,【前端】,TypeSprict

注意:緊接在計(jì)算所得項(xiàng)后面的必須手動(dòng)賦值的項(xiàng),否則它就會(huì)因?yàn)闊o(wú)法獲得初始值而報(bào)錯(cuò)
TypeScript -- 基礎(chǔ)類型,【前端】,TypeSprict

任意類型 – any

1.有些值可能來(lái)自于動(dòng)態(tài)的內(nèi)容,比如來(lái)自用戶輸入或第三方代碼庫(kù)。 這種情況下,我們不希望類
 型檢查器對(duì)這些值進(jìn)行檢查而是直接讓它們通過(guò)編譯階段的檢查。 那么我們可以使用any類型來(lái)標(biāo)
 記這些變量
2.如果變量在聲明的時(shí)候,未指定其類型,那么它會(huì)被識(shí)別為任意值類型

如果是一個(gè)普通類型,在賦值過(guò)程中改變類型是不被允許的

//  錯(cuò)誤寫法
let name: string = 'Tom'
str= 7

// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.

但如果是 any 類型,則允許被賦值為任意類型。

let name: any= 'Tom'
name = 7
name = true

聲明一個(gè)變量為任意值之后,對(duì)它的任何操作,返回的內(nèi)容的類型都可以是任意值。這就違背了
我們用ts嚴(yán)格規(guī)范類型的意義,所以在項(xiàng)目中盡可能少用any定義類型

空值 – void

// 'void'表示沒(méi)有任何返回值的函數(shù)

function getName(): void {
    alert('My name is Tom');
}

Null 和 Undefined

void 的區(qū)別是,undefinednull 是所有類型的子類型。也就是說(shuō) undefined 類型
的變量,可以賦值給 number 類型的變量
let u: undefined = undefined;
let n: null = null;
let u: undefined
let num: number = u; // 這樣不會(huì)報(bào)錯(cuò)

不存在的類型 – never

1.never類型表示的是那些永不存在的值的類型。 例如, never類型是那些總是會(huì)拋出異?;?根本就不會(huì)有返回值的函數(shù)表達(dá)式或箭頭函數(shù)表達(dá)式的返回值類型; 變量也可能是 never
類型,當(dāng)它們被永不為真的類型保護(hù)所約束時(shí)。

2.never類型是任何類型的子類型,也可以賦值給任何類型;然而,沒(méi)有類型是never的子類型
或可以賦值給never類型(除了never本身之外)。 即使 any也不可以賦值給never。
let x: never;
let y: number;

// 運(yùn)行錯(cuò)誤,數(shù)字類型不能轉(zhuǎn)為 never 類型
x = 123;

// 運(yùn)行正確,never 類型可以賦值給 never類型
x = (()=>{ throw new Error('exception')})();

// 運(yùn)行正確,never 類型可以賦值給 數(shù)字類型
y = (()=>{ throw new Error('exception')})();

// 返回值為 never 的函數(shù)可以是拋出異常的情況
function error(message: string): never {
    throw new Error(message);
}

// 返回值為 never 的函數(shù)可以是無(wú)限循環(huán)這種無(wú)法被執(zhí)行到的終止點(diǎn)的情況
function loop(): never {
    while (true) {}
}

對(duì)象 – object

let obj:object = {
    name:"tom"
}
function objFun(obj:object): void{
    console.log(obj)
}
objFun(obj)

類型斷言

1.當(dāng) ts 不確定一個(gè)聯(lián)合類型的變量到底是哪個(gè)類型的時(shí)候,我們只能訪問(wèn)此聯(lián)合類型的所有類型
里共有的屬性或方法
2.兩種寫法:'<類型>值'  或者 '值 as 類型'
  • 兩種寫法
// 尖括號(hào)寫法:<類型>值
let str: any = "this is a string";
let strLength: number = (<string>str).length;

// as 的寫法: 值 as 類型
let str: any = "this is a string";
let strLength: number = (str as string).length;
  • 函數(shù)中的應(yīng)用
function getLength(something: string | number): number {
    if ((<string>something).length) {
        return (<string>something).length;
    } else {
        return something.toString().length;
    }
}

注意:類型斷言不是類型轉(zhuǎn)換,斷言成一個(gè)聯(lián)合類型中不存在的類型是不允許的

function toBoolean(something: string | number): boolean {
    return <boolean>something;
}

// index.ts(2,10): error TS2352: Type 'string | number' cannot be converted to type 'boolean'.
//   Type 'number' is not comparable to type 'boolean'.

TypeScript -- 基礎(chǔ)類型,【前端】,TypeSprict文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-613231.html

到了這里,關(guān)于TypeScript -- 基礎(chǔ)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 前端TypeScript學(xué)習(xí)day05-索引簽名、映射與類型聲明文件

    前端TypeScript學(xué)習(xí)day05-索引簽名、映射與類型聲明文件

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) ? ? ? ? ?? ? 目錄 索引簽名類型? 映射類型 索引查詢(訪問(wèn))類型 基本使用? 同時(shí)查詢多個(gè)索引的類型? TypeScript 類型聲明文件? 概述 TS 的兩種文件類型? 類型聲明文件的

    2024年02月08日
    瀏覽(23)
  • TypeScript基礎(chǔ)知識(shí):類型守衛(wèi)和類型推斷

    ????????在 TypeScript 中,類型守衛(wèi)和類型推斷是兩個(gè)重要的概念,它們可以幫助我們更好地理解和利用類型系統(tǒng)的優(yōu)勢(shì)。本文將詳細(xì)介紹這兩個(gè)概念,并提供示例代碼來(lái)說(shuō)明它們的用法和優(yōu)勢(shì)。 ????????類型守衛(wèi)是一種在 TypeScript 中用于縮小變量類型范圍的技術(shù)。當(dāng)我

    2024年02月02日
    瀏覽(23)
  • TypeScript的基礎(chǔ)類型

    1. boolean類型: boolean表示布爾值類型,即true和false。例: 2. number類型: number表示數(shù)字類型,包括整數(shù)和浮點(diǎn)數(shù)。例: 3. string類型: string表示字符串類型。例: 4. void類型: void表示沒(méi)有返回值的函數(shù)類型。例: 5. null和undefined類型: null和undefined表示null和undefined值的類型。例

    2024年02月11日
    瀏覽(18)
  • 【TypeScript】基礎(chǔ)類型

    【TypeScript】基礎(chǔ)類型

    https://nodejs.org/en 終端中可以查到版本號(hào)即安裝成功。 然后,終端執(zhí)行 npm i typescript -g 安裝 TypeScript 。 查到版本號(hào)即安裝成功。 終端中先執(zhí)行 tsc --init ,然后執(zhí)行 tsc -w 。發(fā)現(xiàn)原本TS文件夾中只有index.ts,現(xiàn)在多了兩個(gè)文件。 再開一個(gè)終端,執(zhí)行 即可輸出。 同樣支持模板字符

    2024年02月12日
    瀏覽(53)
  • TypeScript -- 基礎(chǔ)類型

    TypeScript -- 基礎(chǔ)類型

    錯(cuò)誤示范 正確寫法 布爾類型 – boolean 賦值為true 和 false 賦值為Boolean()對(duì)象 數(shù)字類型 – number 使用 number 定義數(shù)值類型 編譯結(jié)果 字符串類型 – string 數(shù)組類型 「類型 + 方括號(hào)」 泛型 聯(lián)合類型 元組類型 枚舉類型 – enum 枚舉定義 枚舉項(xiàng)有兩種類型:常數(shù)項(xiàng)(constant member)和

    2024年02月15日
    瀏覽(20)
  • TypeScript教程(二)基礎(chǔ)語(yǔ)法與基礎(chǔ)類型

    TypeScript由以下幾個(gè)部分組成 1.模塊 2.函數(shù) 3.變量 4.語(yǔ)句和表達(dá)式 5.注釋 示例: Runoob.ts 文件代碼: 以上代碼首先通過(guò)? tsc ?命令編譯: Runoob.js 文件代碼:? 最后我們使用 node 命令來(lái)執(zhí)行該 js 代碼。 tsc 常用編譯參數(shù)如下表所示: 序號(hào) 編譯參數(shù)說(shuō)明 1. --help 顯示幫助信息

    2024年02月12日
    瀏覽(23)
  • TypeScript基礎(chǔ)知識(shí):類型斷言

    ????????在 TypeScript 中,類型斷言是一種強(qiáng)制將一個(gè)值視為特定類型的方式。它允許開發(fā)人員在編譯時(shí)指定變量的類型,從而獲得更好的類型檢查和代碼提示。本文將深入探討 TypeScript 中的類型斷言,并提供豐富的示例代碼幫助讀者更好地理解和應(yīng)用這一特性。 ??????

    2024年01月25日
    瀏覽(25)
  • 前端TypeScript學(xué)習(xí)day01-TS介紹與TS部分常用類型

    前端TypeScript學(xué)習(xí)day01-TS介紹與TS部分常用類型

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) 目錄 TypeScript 介紹 TypeScript 是什么 TypeScript 為什么要為 JS 添加類型支持?? TypeScript 相比 JS 的優(yōu)勢(shì)? TypeScript 初體驗(yàn)? 安裝編譯 TS 的工具包 編譯并運(yùn)行 TS 代碼 簡(jiǎn)化運(yùn)行 TS

    2024年02月08日
    瀏覽(23)
  • TypeScript基礎(chǔ)知識(shí):高級(jí)數(shù)據(jù)類型

    ????????TypeScript 是一種靜態(tài)類型檢查的 JavaScript 超集,它提供了許多強(qiáng)大的高級(jí)數(shù)據(jù)類型,可以幫助我們更好地定義和操作數(shù)據(jù)。本文將深入介紹 TypeScript 的高級(jí)數(shù)據(jù)類型,包括交叉類型、聯(lián)合類型和映射類型,并通過(guò)示例代碼演示它們的用法和優(yōu)勢(shì)。 ????????交叉

    2024年01月17日
    瀏覽(29)
  • TypeScript基礎(chǔ)篇 - TS日常類型 上篇

    目錄 TS的常見用法介紹 ?example01.ts 逃避類型檢查:any 思考一下~:不知道類型 類型標(biāo)注 函數(shù)(參數(shù)和返回值) 匿名函數(shù) TS如何知道匿名函數(shù)的類型? TS是一種標(biāo)注式語(yǔ)言,不侵入JS的設(shè)計(jì) 文章內(nèi)容 基礎(chǔ)類型、數(shù)組 any/unkown 類型標(biāo)注 函數(shù) 對(duì)象類型 聯(lián)合 別名 接口 斷言 字面

    2024年02月16日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包