无码国模产在线观看免费-无码国内精品久久人妻-无码国内精品久久综合88-无码国内精品人妻少妇-无码国内精品人妻少妇蜜桃视频-无码国语中文在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

分不清Boolean和boolean,我被同事diss了!

admin
2025年4月11日 16:43 本文熱度 191

背景

這幾天寫代碼,遇到一個不確定的知識點:我在vue的props中如何給一個屬性定義小寫的bolean,代碼就會報錯

但是大寫的Bolean就沒問題

由于我在其他地方我看大小寫都可以,有點疑惑,于是想去請教一下同事。然而,沒想到同事上來就diss我:

這么基礎的知識你都不清楚?這兩個根本就不是一個東西!

我有點不開心,想反駁一下:

這兩個不都是描述類型的東西嗎?我給你看其他地方的代碼,這兩個都是可以混用的!

同事有點不耐煩,說道:大姐,boolean是TS中的類型聲明,Boolean是JavaScript 的構造函數,根本不是一個東西吧!

行吧,我也剛入門不久,確實不了解這個東西,只能強忍委屈,對同事說了聲謝謝,我知道了!

然后,我好好的學習了一下Boolean和boolean的知識,終于搞明白他們的區別了。

Boolean和boolean

本質區別

同事說的很對,他們兩個的本質區別就是一個是JavaScript語法,一個是TypeScript語法,這意味著非TypeScript項目是不存在boolean這個東西的。

Boolean 是 JavaScript 的構造函數

Boolean 是 JavaScript 中的內置構造函數,用于布爾值的類型轉換或創建布爾對象。

js
typeof Boolean; // "function"

boolean 是 TypeScript 的基本類型

  • 如果使用了 TypeScript,boolean 是 TypeScript 中的基本類型,用于靜態類型檢查。
  • 在 JavaScript 的運行時上下文中,boolean 并不存在,僅作為 TypeScript 的靜態檢查標識。
js
typeof boolean; // ReferenceError: boolean is not defined

TS中作為類型的Boolean和boolean

在TypeScript中,Boolean和boolean都可以用于表示布爾類型

js
export interface ActionProps { checkStatus: Boolean } export interface RefundProps { visible: boolean }

但是,他們存在一些區別

boolean

  • boolean 是 TypeScript 的基本類型,用于定義布爾值。
  • 它只能表示 truefalse
  • 編譯后 boolean 不會存在于 JavaScript 中,因為它僅用于靜態類型檢查。
js
//typescript let isActive: boolean; // 只能是 true 或 false isActive = true;       // 正確 isActive = false;      // 正確 isActive = new Boolean(true); // 錯誤,不能賦值為 Boolean 對象

Boolean

  • Boolean 是 JavaScript 的內置構造函數,用于將值顯式轉換為布爾值或創建布爾對象(Boolean 對象)。
  • 它是一個引用類型,返回的是一個布爾對象,而不是基本的布爾值。
  • 在 TypeScript 中, Boolean 表示構造函數類型,而不是基本的布爾值類型

js
//typescript let isActive: Boolean; // 類型是 Boolean 對象 isActive = new Boolean(false); // 正確,賦值為 Boolean 對象 isActive = true; // 正確,基本布爾值也可以兼容

關鍵區別

特性booleanBoolean
定義TypeScript 的基本類型JavaScript 的構造函數
值類型只能是 truefalse是一個布爾對象
推薦使用場景用于定義基本布爾值類型很少用,除非需要顯式構造布爾對象
運行時行為不存在,只在編譯時有效在運行時是 JavaScript 的構造函數
性能高效,直接操作布爾值對象包裝,性能較差

為什么盡量避免使用 Boolean

類型行為不一致Boolean 是對象類型,而不是基本值類型。這會在邏輯運算中導致混淆:

js
const flag: Boolean = new Boolean(false); if (flag) {  console.log("This will run!"); // 因為對象始終為 truthy }

性能開銷更大Boolean 會創建對象,而 boolean 是直接操作基本類型。

vue中的Boolean與boolean

Vue 的運行時框架無法識別 boolean 類型,它依賴的是 JavaScript 的內置構造函數(如 BooleanStringNumber 等)來檢查和處理 props 類型。

因此,props的Type只能是BooleanStringNumber

但是如果vue中開啟了ts語法,就可以使用boolean 表示類型了

js
<script lang="ts" setup>   interface IProps {    photoImages?: string[],    isEdit?: boolean } const props = withDefaults(defineProps<IProps>(), {    photoImages: () => [],    isEdit: true }) </script>

作者:快樂就是哈哈哈
鏈接:https://juejin.cn/post/7439576043223203892
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

該文章在 2025/4/12 18:00:23 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 精品1区2区3区芒果 精品69久久久久久99 | 亚洲国产成人精品无码区在线秒播 | 日本无码一区二区二区 | 97欧美在线看欧美视频免费 | 制服丝袜中文字幕无码 | 欧美三级欧美成人高清 | 国产裸体裸美女无遮挡网站 | 免费观看又色又爽又黄的校园 | 真人做爰到高潮A级 | 国产精品婷婷五月久久久久 | 熟女人妻一区二区三区视频 | 青青草成人色情视频网 | 久久影视日本国产 | 把女人弄爽的特黄A大片 | 无人区乱码一线二线久久久久 | 麻豆国产原创视频 | 久久亚洲精品日本波多野结衣 | 色综合网站国产麻豆 | 国产亚洲欧洲另类精品 | 不卡无码人妻一区二区三区 | 午夜亚洲国产理论片二级港台二级 | 18禁超污无遮挡无码免费网站 | 中文国产成人精品久久久 | 精品日本一区二区三区在线观看 | a级全黄试看30分钟国产 | 亚洲波霸一区二区在线观看 | 丁香花视频免费播放 | 国产精品免费无遮挡无 | 精品国产人妻精品 | 本地卖淫自拍偷拍视频 | 国产视频三区 | 国产精品综合一区二区在线播放 | 97国产精品无码免费视频 | av亚欧洲日产国码无码 | 久久综合加勒比金八天国 | 国产成人综合亚洲网站 | 香蕉影视色多多 | 全黄H全肉短篇禁乱NP | 无码人妻久久久一区二区三区 | 欧洲一区二区在线观看 | 久久久久久久蜜桃 |