我使用的是JS文件的遗留代码库,而不是TS。但是我添加了tsc来验证类型。
TS推断参数类型的一种方法是基于默认值。因此,
function doSomething(withProp = 5) {
...
}
字符串withProp
被假定为 * 总是 * 是一个数字,所以试图调用parseInt(withProp)
不会很高兴。
我知道我可以使用JSign来纠正类型,但是在这个例子中,我处理的是Vuex的getter树深处的一个匿名函数。
我使用的是JS文件的遗留代码库,而不是TS。但是我添加了tsc来验证类型。
TS推断参数类型的一种方法是基于默认值。因此,
function doSomething(withProp = 5) {
...
}
字符串withProp
被假定为 * 总是 * 是一个数字,所以试图调用parseInt(withProp)
不会很高兴。
我知道我可以使用JSign来纠正类型,但是在这个例子中,我处理的是Vuex的getter树深处的一个匿名函数。
1条答案
按热度按时间3htmauhk1#
代码中的
withProp = 5
反映了arg
的default
值,但这并不意味着总是arg
的type
。如果您将任何
string
或object
作为参数传递,则其类型可能会根据传入的参数而更改。检查类型的最好方法是创建一个实用函数来检测参数的类型。(你可以使用If ... else if.. else)然后你可以在getter中调用这个函数来验证传入的参数。