typescript 2.0: parameters with default values
地狱伙计们,
这是另一个打字稿2.0问题(启用了严格的空检查模式)。 因此,如果您定义一个具有所有参数的默认值的函数:
1 | (name ="Luis", age = 40)=>void |
然后所有参数都被认为是可选的,即,就好像我们有以下签名:
1 | (name?: string, age?: number) => void |
对? 现在,当我们有这个签名时会发生什么:
1 | (name ="Luis", age: number ) => void |
根据VS代码,该签名与以下内容兼容:
1 | (name: string, age: string) => void |
现在,如果我激活严格的空检查模式,则以下调用不应该产生错误:
1 | doIt(undefined, 30); |
它编译好了,但如果我没错,undefined只会自动添加到可选参数类型列表中。 我没有找到任何对默认初始化参数的引用。
所以,如果以前的电话没问题,有人可以指点我在官方文档中找到有关它的信息吗?
谢谢,
路易斯
快速注意:您不能仅在签名中指定默认值,例如 以下是错误:
1 | declare var foo: (name ="Luis", age = 40) => void; // ERROR: defaults only allowed in implementation |
继续以下代码:
1 2 3 | var foo = (name ="Luis", age: number) => null; foo(undefined, 123); foo(null, 123); // ERROR |
显示
请随时通过https://github.com/Microsoft/TypeScript/issues提出问题