javascript - 函數(shù)參數(shù)的形式不太懂是什么意思
問題描述
export class HashHistory extends History { constructor (router: VueRouter, base: ?string, fallback: boolean) {
// 調(diào)用基類構(gòu)造器super(router, base)
}
以上這段代碼中constructor的參數(shù)中鍵值對的形式編寫時什么意思,其中'base: ? string '這里的“?”又是什么意思,勞煩大家指點(diǎn)一二,謝謝!
問題解答
回答1:這個不是ES6的語法,而是用flow.js加上的類型約束。flow是facebook做的一款靜態(tài)類型檢查器,用于在js代碼里指定變量類型,在大型JS項(xiàng)目里靜態(tài)類型可以提前檢查很多錯誤。這里面base:?string指的是base這個形參的傳入需要是一個?string類型,?string是一個maybe type,意思是可以傳入string,null或者 undefined,但如果是其他類型就會出錯。
vue官方的項(xiàng)目都加了flow的類型約束。
flow.js的官網(wǎng)在這 https://flow.org/en/docs/gett...
回答2:這個明顯不是 ES6 的語法,ES6 里不會有類型一說,這看起來比較像是 TypeScript 的語法,冒號左邊是參數(shù)名,右邊是參數(shù)類型,問題表示可選參數(shù),但如果說是 TypeScript,這里有兩個語法問題
base:?string 不是 TypeScript 語法,base?: String 才是
fallback 不是可選參數(shù),但 TypeScript 中不允許非可選參數(shù)放在可選參數(shù)(base?)的后面
建議你給點(diǎn)更詳細(xì)的信息
相關(guān)文章:
1. java - 三位二進(jìn)制表示8進(jìn)制,四位二進(jìn)制表示16進(jìn)制,那么多少二進(jìn)制表示10進(jìn)制呢?2. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個是怎么回事????3. 如何用筆記本上的apache做微信開發(fā)的服務(wù)器4. angular.js - ionic2 瀏覽器跨域問題5. 【python|scapy】sprintf輸出時raw_string轉(zhuǎn)string6. python - Scrapy存在內(nèi)存泄漏的問題。7. docker-compose中volumes的問題8. android - rxjava merge 返回Object對象數(shù)據(jù)如何緩存9. mysql - 記得以前在哪里看過一個估算時間的網(wǎng)站10. java如何生成token?
