as const
是 TypeScript 中的一個用於修飾符,它可以被用來修改型別推斷的行為。
當 as const
修飾符用在變數宣告或表示式的型別上時,它會強制 TypeScript 將變數或表示式的型別視為不可變的(immutable)。這意味著,如果你嘗試對變數或表示式進行修改,TypeScript 會報錯。
例如:
const foo = ['a', 'b'] as const;
foo.push('c'); // TypeScript 會報錯,因為 foo 型別被宣告為不可變的
const bar = { x: 1, y: 2 } as const;
bar.x = 3; // TypeScript 會報錯,因為 bar 型別被宣告為不可變的
as const
修飾符還可以用來修改物件字面量和陣列字面量的型別推斷。在這種情況下,as const
會強制 TypeScript 將物件字面量或陣列字面量的型別推斷為不可變的,即使沒有顯式地指定型別。
例如:
const foo = ['a', 'b'] as const; // 等價於 const foo: ['a', 'b'] = ['a', 'b']
const bar = { x: 1, y: 2 } as const; // 等價於 const bar: { x: 1, y: 2 } = { x: 1, y: 2 }
在這兩個例子中,TypeScript 會將 foo
和 bar
的型別推斷為不可變的陣列和物件,即使沒有顯式地指定型別。
總的來說,as const 修飾符是一種有用的工具,可以幫助我們提高程式碼的型別安全性,避免在不應該修改的地方進行修改。
編輯中可能存在的bug沒法實時知道,事後為了解決這些bug,花了大量的時間進行log 除錯,這邊順便給大家推薦一個好用的BUG監控工具 Fundebug。
交流
有夢想,有乾貨,微信搜尋 【大遷世界】 關注這個在凌晨還在刷碗的刷碗智。
本文 GitHub https://github.com/qq449245884/xiaozhi 已收錄,有一線大廠面試完整考點、資料以及我的系列文章。