繁体   English   中英

打字稿2.0:具有默认值的参数

[英]typescript 2.0: parameters with default values

地狱的家伙,

这是另一个打字稿2.0问题(启用了严格的null检查模式)。 因此,如果您定义一个具有所有参数默认值的函数:

(name = "Luis", age = 40)=>void

然后,所有参数都被视为可选参数,也就是说,就像我们具有以下签名一样:

(name?: string, age?: number) => void

对? 现在,当我们拥有此签名时会发生什么:

(name = "Luis", age: number ) => void

根据VS代码,该签名与:

(name: string, age: string) => void

现在,如果我激活严格的空检查模式,则以下调用不应产生错误:

doIt(undefined, 30);

它可以编译,但是如果我没记错的话,undefined只会自动添加到可选参数类型列表中。 我尚未找到对默认初始化参数的任何引用。

因此,如果以前的电话没问题,有人可以指出我在官方文档中可以找到有关此信息的地方吗?

谢谢,

路易斯

快速说明:您不能仅在签名中指定默认值,例如,以下是错误:

declare var foo: (name = "Luis", age = 40) => void; // ERROR: defaults only allowed in implementation

继续以下代码:

var foo = (name = "Luis", age: number) => null;
foo(undefined, 123);
foo(null, 123); // ERROR 

显示namestringundefined兼容。 工具提示错误,但一般分析正确。

随时在https://github.com/Microsoft/TypeScript/issues上提出问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM