如果我有这样的功能:
function say(message: string) {
alert(message);
return say;
}
Run Code Online (Sandbox Code Playgroud)
它有一个有趣的属性,我可以链接调用它:
say("Hello,")("how")("are")("you?");
Run Code Online (Sandbox Code Playgroud)
如果我将数字传递给第一个调用,编译器将生成警告,但它允许我将数字放入后续调用中.
say("Hello")(1)(2)(3)(4)
Run Code Online (Sandbox Code Playgroud)
say当我将无效类型传递给链式调用时,我需要向函数添加什么类型的注释以使编译器生成警告?
chu*_*ckj 18
引用自身的类型必须具有名称.例如,
interface OmegaString {
(message: string): OmegaString;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以注释say为OmegaString,
function say(message: string): OmegaString {
alert(message);
return say;
}
Run Code Online (Sandbox Code Playgroud)
然后以下代码将进行类型检查.
say("Hello,")("how")("are")("you?");
Run Code Online (Sandbox Code Playgroud)
但以下不会,
say("Hello")(1)(2)(3)(4)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2030 次 |
| 最近记录: |