如何调用具有可选参数的TypeScript方法?

时间:2016-07-31 15:47:48

标签: typescript optional-parameters

VSCode [].slice.call类有两个看起来像这样的方法:

translate(lineDelta?: number, characterDelta?: number): Position
translate(change: {characterDelta: number, lineDelta: number}): Position

我想称它只提供一个characterDelta。我试过这样做:

let endPos = startPos.translate(characterDelta: error.location.length);

但是我收到了这个错误:

Cannot find name 'characterDelta'.

我认为第一次重载的参数?的目的意味着它们是可选的,我可以提供我需要的那个。情况不是这样吗?

2 个答案:

答案 0 :(得分:2)

调用方法时,不要为参数命名,但根据签名,您需要提供第一个可选参数,所以它应该是这样的:

translateAlong

或者:

d3

可选参数可能是可选的,但是如果你想传递第二个可选参数,那么你还需要传递第一个参数。
所以这些都是有效的(根据签名):

d3

答案 1 :(得分:0)

它需要一个具有 characterDelta lineDelta 属性的对象。

{{1}}