javascript - 函數參數的形式不太懂是什么意思
問題描述
export class HashHistory extends History { constructor (router: VueRouter, base: ?string, fallback: boolean) {
// 調用基類構造器super(router, base)
}
以上這段代碼中constructor的參數中鍵值對的形式編寫時什么意思,其中'base: ? string '這里的“?”又是什么意思,勞煩大家指點一二,謝謝!
問題解答
回答1:這個不是ES6的語法,而是用flow.js加上的類型約束。flow是facebook做的一款靜態類型檢查器,用于在js代碼里指定變量類型,在大型JS項目里靜態類型可以提前檢查很多錯誤。這里面base:?string指的是base這個形參的傳入需要是一個?string類型,?string是一個maybe type,意思是可以傳入string,null或者 undefined,但如果是其他類型就會出錯。
vue官方的項目都加了flow的類型約束。
flow.js的官網在這 https://flow.org/en/docs/gett...
回答2:這個明顯不是 ES6 的語法,ES6 里不會有類型一說,這看起來比較像是 TypeScript 的語法,冒號左邊是參數名,右邊是參數類型,問題表示可選參數,但如果說是 TypeScript,這里有兩個語法問題
base:?string 不是 TypeScript 語法,base?: String 才是
fallback 不是可選參數,但 TypeScript 中不允許非可選參數放在可選參數(base?)的后面
建議你給點更詳細的信息
相關文章:
1. docker綁定了nginx端口 外部訪問不到2. dockerfile - 為什么docker容器啟動不了?3. git - webstorm窗口中左側列表的文件名顏色怎么修改4. android權限被第三方安全軟件禁止,如何獲取該權限狀態5. javascript - 深夜被問題困擾求解惑,rn的API之PermissionsAndroidd的問題6. javascript - 最近用echarts做統計圖時遇到兩個問題!!7. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?8. mysql - 我的myeclipse一直連顯示數據庫連接失敗,不知道為什么9. tp 6.0 數據查詢,求教!10. mysqld無法關閉

網公網安備