国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

AS Const 五種使用技巧,你知道多少?

開發 前端
使用 AS Const 可以告訴 TypeScript 編譯器,某個對象的所有屬性都是只讀的,并且它們的類型是字面量類型,而不是更通用的類型,比如 String 或 Number 類型。接下來,我將介紹 TypeScript 中 AS Const 類型斷言的 5 個使用技巧。

在 TypeScript 中,as const 是一種類型斷言,它將變量標記為 “常量”。使用 as const 可以告訴 TypeScript 編譯器,某個對象的所有屬性都是只讀的,并且它們的類型是字面量類型,而不是更通用的類型,比如 string 或 number 類型。接下來,我將介紹 TypeScript 中 as const 類型斷言的 5 個使用技巧。

1.確保對象的屬性不可變

在下面代碼中,雖然你使用 const 關鍵字來定義 DEFAULT_SERVER_CONFIG 常量。但你仍然可以修改該對象的屬性。

const DEFAULT_SERVER_CONFIG = {
    host: "localhost",
    port: 8080
}

DEFAULT_SERVER_CONFIG.port = 9090
console.log(`Server Host: ${DEFAULT_SERVER_CONFIG.port}`)
// "Server Host: 9090"

如果你希望該對象的屬性,是只讀的不允許修改,那么你可以使用 as const 類型斷言。

const DEFAULT_SERVER_CONFIG = {
    host: "localhost",
    port: 8080
} as const

之后,當你嘗試修改 port 屬性時,TypeScript 編譯器就會提示以下錯誤信息:

as const 類型斷言,除了支持普通對象之外,還支持嵌套對象:

const DEFAULT_CONFIG = {
    server: {
        host: "localhost",
        port: 8080
    },
    database: {
        user: "root",
        password: "root"
    }
} as const

2.確保數組或元組不可變

在工作中,數組是一種常見的數組結構。使用 as const 類型斷言,我們可以讓數組變成只讀。

const RGB_COLORS = ["red", "green", "blue"] as const

使用了 as const 類型斷言之后,RGB_COLORS 常量的類型被推斷為 readonly ["red", "green", "blue"] 類型。之后,當你往 RGB_COLORS 數組添加新的顏色時,TypeScript 編譯器就會提示以下錯誤信息:

除了數組之外,你也可以在元組上使用 as const 類型斷言:

const person = ['kakuqo', 30, true] as const;

person[0] = 'semlinker' // Error
// Cannot assign to '0' because it is a read-only property.(2540)

3.常量枚舉的替代方案

在下面代碼中,我們使用 enum 關鍵字定義了 Colors 枚舉類型。

const enum Colors {
  Red = 'RED',
  Green = 'GREEN',
  Blue = 'BLUE',
}

let color: Colors = Colors.Red; // Ok
color = Colors.Green // Ok

除了使用枚舉類型之外,利用 as const 類型斷言,你也可以實現類似的功能:

const Colors = {
  Red: 'RED',
  Green: 'GREEN',
  Blue: 'BLUE',
} as const;

type ColorKeys = keyof typeof Colors;
type ColorValues = typeof Colors[ColorKeys]

let color: ColorValues = 'RED'; // Ok
color = 'GREEN'; // Ok

4.讓類型推斷更精準

在下面代碼中,red 變量的類型被推斷為 string 類型。

const RGB_COLORS = ["red", "green", "blue"];

let red = RGB_COLORS[0] // string

在某些場合中,你可能希望獲取更精確的類型,比如對應的字面量類型,這時你就可以使用 as const 類型斷言:

const RGB_COLORS = ["red", "green", "blue"] as const;

let red = RGB_COLORS[0] // "red"

5.賦值時縮窄變量的類型

在下面代碼中,使用 const 關鍵字定義的常量,它的類型會被推斷為更精確的類型。

let color1 = "Red" // let color1: string
const color2 = "Red" // const color2: "Red"

利用 as const 類型斷言,我們也可以讓 let 關鍵字定義的變量對應的類型更精準:

let color3 = "Red" as const // let color3: "Red"

當然,在實際工作中,如果明確定義常量,那么推薦直接使用 const 關鍵字來定義。

責任編輯:姜華 來源: 全棧修仙之路
相關推薦

2022-08-11 08:46:23

索引數據結構

2023-11-23 10:21:37

2024-04-09 16:24:18

Promise開發

2021-03-03 00:01:30

Redis數據結雙向鏈表

2014-12-17 09:27:41

開源PaaS

2020-08-11 11:20:49

Linux命令使用技巧

2024-01-31 09:24:58

2024-05-06 00:30:00

MVCC數據庫

2011-03-25 15:56:58

2023-09-06 12:35:40

2022-03-23 15:36:13

數字化轉型數據治理企業

2023-08-02 08:14:33

監控MTS性能

2010-03-03 16:26:10

ubantu使用技巧

2010-02-02 14:06:50

C++ const變量

2024-04-24 11:24:43

C#數據去重

2025-05-16 10:03:09

2021-10-25 14:55:38

Linux技巧命令

2013-01-09 13:55:43

2019-07-25 10:45:05

GitHub技巧網站

2024-04-28 14:49:31

點贊
收藏

51CTO技術棧公眾號

亚洲欧美中文字幕| 激情伊人五月天| 欧美 国产 小说 另类| 久久久久久77777| 欧美与动交zoz0z| 日本蜜桃在线观看视频| 三级久久三级久久| 日韩专区一卡二卡| 国产日韩欧美电影在线观看| 领导边摸边吃奶边做爽在线观看 | 老司机精品视频一区二区三区| 91精品午夜视频| 久久久久久久久一区二区| 精品欧美色视频网站在线观看| 在线免费观看欧美| 亚洲二区中文字幕| 日本中文字幕网址| 久久99国产精品久久| 视频直播国产精品| www.99热.com| 婷婷综合激情| 欧美日韩另类国产亚洲欧美一级| 久久精品国产美女| 亚洲精品一区二区在线看| 日韩欧美高清视频| 四虎一区二区| 午夜精品一区二区三区在线观看 | 91在线观看免费网站| 国产视频三级在线观看播放| 黄色亚洲精品| 在线日韩日本国产亚洲| 日本女优爱爱视频| 久久精品亚洲人成影院| 日韩三级视频在线看| 亚洲免费视频播放| 六月丁香婷婷久久| 毛片av在线播放| 一区二区美女| 精品国产免费久久| 欧美综合在线观看视频| www.日韩av| 成人疯狂猛交xxx| 岛国毛片av在线| 久久精品视频在线看| 欧美大成色www永久网站婷| 日本中文字幕电影| 视频一区视频二区中文| 久久影院资源网| a天堂中文在线88| 91亚洲精品久久久蜜桃网站| 91网站免费看| 激情偷拍久久| 在线综合视频网站| 三级电影一区| 日韩最新中文字幕电影免费看| 在线理论视频| 91天堂素人约啪| av首页在线| 九一九一国产精品| 人妻丰满熟妇av无码区app| 亚洲黄色小说网站| www.国产在线播放| 亚洲乱码精品| 日本一区二区三区四区高清视频 | 欧美视频一区| 欧美床上激情在线观看| 日本成人中文| 亚洲欧美日韩网| 你懂的免费在线观看| 成人av网站免费| 国产精品污www一区二区三区| 99视频这里有精品| 在线播放国产精品二区一二区四区| heyzo高清在线| 欧美视频精品一区| 91福利区在线观看| 日本伊人精品一区二区三区介绍 | 欧美一级免费在线观看| 午夜久久99| 欧美亚洲第一区| 欧美视频第一| 欧美性精品220| 周于希免费高清在线观看| 欧美四级电影在线观看| 电影天堂最新网址| 久久婷婷一区二区三区| 中文字幕在线中文字幕日亚韩一区| 99re成人在线| 懂色av一区二区三区四区五区| 国产精品丝袜久久久久久app| 97av中文字幕| 免费观看日韩电影| 久久伊人一区| 日韩视频二区| 精品久久久久亚洲| 一区二区三区国产盗摄| 国产精品一区二区小说| 波多野结衣精品在线| 偷偷要色偷偷| 久久精品中文字幕免费mv| 中文字幕资源网在线观看免费| 青青草精品毛片| 亚洲成在人线免费观看| 椎名由奈jux491在线播放 | 97超碰国产精品| 国产另类ts人妖一区二区| 国产精品乱码一区二区三区| 国产欧美精品区一区二区三区| 特大黑人娇小亚洲女mp4| 日韩欧美在线国产| 久久精品亚洲成在人线av网址| 欧美激情精品久久久久久大尺度| 日韩一级二级| 在线a欧美视频| 日韩精品一页| 日韩av大全| 蜜臀精品久久久久久蜜臀| 无夜福利视频观看| 久久久久久久久久久91| 台湾佬综合网| 国产精品久久精品| 国产探花在线精品一区二区| 日本精品在线视频| 久久精品在这里| 色综合视频一区二区三区44| 亚洲v日韩v欧美v综合| 国产精品小仙女| sqte在线播放| 日韩三级电影免费观看| 欧美视频精品在线| 国产在线美女| 久久成年人免费电影| 久久黄色级2电影| 成视频免费观看在线看| 欧洲中文在线| 欧美在线一区二区视频| 欧美久久在线观看| 色视频免费在线观看| 亚洲女同ⅹxx女同tv| 欧美12一14sex性hd| 2020欧美日韩在线视频| 日本一区二区在线不卡| 成人福利免费在线观看| 91久久综合亚洲鲁鲁五月天| 亚洲欧美日韩成人高清在线一区| 国产精品亚洲四区在线观看| 欧美在线日韩在线| 中文字幕视频一区二区三区久| 四虎永久在线| 51成人做爰www免费看网站| 奇米影视一区二区三区| 成人免费观看毛片| 欧美高清无遮挡| 自拍av一区二区三区| 亚洲一区二区三区在线视频| 91精品影视| 在线视频中文亚洲| 一区二区三区日韩在线观看| 欧美日韩加勒比精品一区| 国产精品一二三产区| 激情内射人妻1区2区3区 | 欧美日韩一区在线视频| 91精品国产综合久久蜜臀| 老司机免费视频久久| 黄色免费影视| 成人免费在线一区二区三区| 欧美美女一区二区三区| 99精品福利视频| 大片网站久久| 羞羞的视频免费| 三区在线观看| av日韩一区二区三区| 成人欧美一区二区三区黑人麻豆| 国产成人啪免费观看软件| 日本成人三级电影| 波多野结衣在线中文| 亚洲精品影片| 国产女王在线**视频| 国产一二三区在线观看| 亚洲无线观看| 国产成a人亚洲精品| 欧美成熟毛茸茸复古| 悠悠资源网亚洲青| 999国产精品视频| 久草在线中文888| caoporn97在线视频| 久久福利一区| 国产天堂av| 日本h片在线看| av网站在线播放| 色综久久综合桃花网| 亚洲精品国产精品久久清纯直播| 成人黄色在线看| 亚洲欧美另类久久久精品2019| 在线免费观看日本欧美| 亚洲欧美日韩专区| 校园激情久久| 夜色激情一区二区| 欧美亚洲愉拍一区二区| 国产v综合v亚洲欧美久久 |