最近在用typescript做乙個新專案,需要移植一批老的js**, 之前最喜歡做這種移植,直接複製黏貼不知道多爽。直到遇到typescript。
乙個簡單的js function:
const
timer
=(start)
=>
;
用的時候只需要:
const start =
timer()
;//do something
const end =
timer
(start)
;//得到乙個something花費的時間
放到typescript中,可選引數必須宣告自己是optional的:
const timer =
(start?
: number)
: number =>
;
關於簡單的timer的故事就到這裡了以後再討論new date().gettime()
和process.hrtime()
的問題。這裡只說typescript可選的引數的問題。
先來個簡單的例子
const sayhello =
(name?
: string)
:void
=>
sayhello()
;//hello stranger
sayhello
("jill");
//hello jill
const sayhello =
(name: string =
"jill"):
void
=>
sayhello()
;//hello jill
sayhello
("tom");
//hello tom
注意,引數裡的?
沒了,因為如果帶了預設引數,意思就是如果你不給它引數,它就取預設引數值。這樣不管如何,它一定在的。
還是上面的**
sayhello
(undefined)
;//hello jill
sayhello
(null);
//hello stranger
sayhello(""
);//hello stranger
可以看到,null
和""
都不夠資格使用預設引數。
原因在於它是如何判斷預設引數的,[來看看文件的說法], 文件裡用紅字著重說了,必須是undefined
才行。其他的都不算預設引數
(再看看mdn裡怎麼定義預設引數的
注意搜尋關鍵字typeof
只有當typeof 引數
為"undefined"
的時候才能用預設引數
然而:
typeof
null
;//"object"
python中非可選引數 Python可選引數
為了有效地使用預設值,您需要了解預設值是如何工作的。函式是物件。因此,它們具有屬性。所以,如果我建立這個函式 def f x,y return y 我建立了乙個物件。其特點如下 dir f call class closure code defaults delattr dict doc forma...
mvn可選引數
引數 描述 pl 選項後可跟隨 或者所選模組的相對路徑 多個模組以逗號分隔 am和 pl連用,同時構建指定模組依賴的模組 amd 和 pl連用,同時構建依賴於指定模組的模組 rf從指定的模組開始構建 n不遞迴子模組 這裡說的依賴包含兩層含義 父子關係 依賴關係 例1 從指定的模組開始構建 mvn c...
C 可選引數 命名引數
1.可選引數 可選引數是.net4中新新增的功能,應用可選引數的方法在被呼叫的時可以選擇性的新增需要的引數,而不需要的引數由引數預設值取代。classprogram privatestaticstringshowcomputer stringcpu i3 370m stringram 4g stri...