javascript - 函數(shù)參數(shù)的形式不太懂是什么意思
問(wèn)題描述
export class HashHistory extends History { constructor (router: VueRouter, base: ?string, fallback: boolean) {
// 調(diào)用基類(lèi)構(gòu)造器super(router, base)
}
以上這段代碼中constructor的參數(shù)中鍵值對(duì)的形式編寫(xiě)時(shí)什么意思,其中'base: ? string '這里的“?”又是什么意思,勞煩大家指點(diǎn)一二,謝謝!
問(wèn)題解答
回答1:這個(gè)不是ES6的語(yǔ)法,而是用flow.js加上的類(lèi)型約束。flow是facebook做的一款靜態(tài)類(lèi)型檢查器,用于在js代碼里指定變量類(lèi)型,在大型JS項(xiàng)目里靜態(tài)類(lèi)型可以提前檢查很多錯(cuò)誤。這里面base:?string指的是base這個(gè)形參的傳入需要是一個(gè)?string類(lèi)型,?string是一個(gè)maybe type,意思是可以傳入string,null或者 undefined,但如果是其他類(lèi)型就會(huì)出錯(cuò)。
vue官方的項(xiàng)目都加了flow的類(lèi)型約束。
flow.js的官網(wǎng)在這 https://flow.org/en/docs/gett...
回答2:這個(gè)明顯不是 ES6 的語(yǔ)法,ES6 里不會(huì)有類(lèi)型一說(shuō),這看起來(lái)比較像是 TypeScript 的語(yǔ)法,冒號(hào)左邊是參數(shù)名,右邊是參數(shù)類(lèi)型,問(wèn)題表示可選參數(shù),但如果說(shuō)是 TypeScript,這里有兩個(gè)語(yǔ)法問(wèn)題
base:?string 不是 TypeScript 語(yǔ)法,base?: String 才是
fallback 不是可選參數(shù),但 TypeScript 中不允許非可選參數(shù)放在可選參數(shù)(base?)的后面
建議你給點(diǎn)更詳細(xì)的信息
相關(guān)文章:
1. javascript - vue-router怎么不能實(shí)現(xiàn)跳轉(zhuǎn)呢2. npm鏡像站全新上線3. 老哥們求助啊4. css3 - 請(qǐng)問(wèn)一下在移動(dòng)端CSS布局布局中通常需要用到哪些元素,屬性?5. mySql排序,序號(hào)6. html5 - angularjs中外部模版加載無(wú)法使用7. django - 后臺(tái)返回的json數(shù)據(jù)經(jīng)過(guò)Base64加密,獲取時(shí)用python如何解密~!8. node.js - node 客戶端socket一直報(bào)錯(cuò)Error: read ECONNRESET,用php的socket沒(méi)問(wèn)題哈。。9. tp6表單令牌10. 我的html頁(yè)面一提交,網(wǎng)頁(yè)便顯示出了我的php代碼,求問(wèn)是什么原因?
