typescript修煉指南(一)

大綱

本章主要講解數據類型,涉及以下內容:(方便記憶按照我自己的理解去分的 QAQ~ )

  • 原始數據類型: boolean number string void null undefined
  • 特殊數據類型: any unknown nerver
  • 其它數據類型: array tuple object enum

原始數據類型

    1. 布爾類型
const bool: boolean = true // 注意小寫
    1. 數值類型
const num: number = 123  // 數字可以是二進制 十進制 十六進制
 // 還有一個表示最大整數的 類型 bigint
let bignum: bigint;  //它只屬于bigint類型而不是number類型
    1. 字符串類型
const str: string = 'hello'
    1. 空值
const b: void = undefined
// 或者函數無返回值
function test(): void { // ...code }
    1. null 和 undefined
const u: undefined = undefined
const n: null = null

特殊類型

  • 1.any 可以是任意類型 --- 這種情況下并不安全 不會進行任何類型檢查
const an: any = true // 可以是布爾類型
    1. unknown 跟any一樣可以是任意類型,但會進行類型檢查 -- 相對安全
const un: unknown = 123
un.clear = 1; // Object is of type 'unknown'

const anm: any = 123
anm.clear = 1;  // 不會報任何錯誤 --- 實際編譯的時候是報錯的 因為沒有clearn屬性 但不是報類型錯誤
``

- 3.nerver 永遠無返回值的情況下(對nerver類型沒有過多研究QAQ,歡迎大家評論區補充)

```ts
// 多數在拋出異常的時候 永遠沒有返回值 或者空數組(永遠都是空的數組)
const arr: never[] = []

function err(message: string): never {
    throw new Error(message)
}

其他類型

    1. 數組
const arr1: [] = [] // 定義一個空數組
const arr2: number[] = [1,2,3] // 定義指定類型
const arr3: Array<number> = [] // 同上
const arr4: Array<number | string> = [1,'1',true] // 必須是數字或者字符串類型否則報錯
    1. 元祖 定義: 個數,類型,順序一致 有點數組的味道 相對嚴格
let tup: [string,number,boolean]
tup = ['1'] // Error
tup = [1,1,true] // Error
tup = ['1',1,true] // ok
    1. 對象類型(--- 除了原始類型以外的類型 number,string,boolean,symbol,null 或 undefined)
let obj: object
obj = {}
obj = 1 // 報錯: 因為是原始類型
    1. 枚舉類型(當一個變量存在多種類型選擇的時候)
// 默認的枚舉類型是數值類型且依次累加1
enum Nums {
    one,
    two,
    three,
    four
}
console.log(Nums.one, Nums.two, Nums.three, Nums.four) // 0 1 2 3

這時候我們個第一個one賦值會發現在第一個值基礎上累加:

// Nums.one = 100  報錯: 枚舉類型是只讀類型
    enum Nums1 {
        one = 100,
        two,
        three,
        four
    }
console.log(Nums1.one, Nums1.two, Nums1.three, Nums1.four) // 100 101 102 103

也可以賦值字符串也可以混用類型:

 // 也可以是字符串類型
    enum Str {
        s1 = 's1',
        s2 = 's2'
    }
console.log(Str.s1, Str['s2'])

// 也可以是類型混用  --- 這種情況比較少用
enum En {
    s1 = 1,
    s2 = 's2'
}

枚舉具有反射性(可以根據值拿到name)

enum En {
    s1 = 1,
    s2 = 's2'
}
console.log(En[1]) // s1  --- 這里能獲取到s1的原因是枚舉具有反射性 --- key <=> val

當然也可以給一個常量賦值:

const enu = En.s1
// 最終編譯是: var enu = 1 如果要保留枚舉對象:加上編譯參數 --preserveConstEnums

當聲明多個相同的枚舉對象時會合并:

enum en1 {
        e1 = 1
    }

enum en1 {
    e2 = 1
}

enum en1 {
    e3 = 1
}

console.log(en1) // 1: "e3", e1: 1, e2: 1, e3: 1}

如果對大家有幫助記得點贊個~ , 如有錯誤請指正, 我們一起解決,一起進步。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,125評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,506評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,614評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,402評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,934評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,168評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,690評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,596評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,027評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,404評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,662評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,398評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,743評論 2 370