【问题标题】:What is the purpose of `(function(): Something{})` syntax?`(function(): Something{})` 语法的目的是什么?
【发布时间】:2021-11-26 04:27:15
【问题描述】:

(function() : Contract {}).

我期待 IIFE 但这个冒号? 不是标签吗?

【问题讨论】:

标签: typescript


【解决方案1】:

这是 TypeScript 语法,而不是 JavaScript。冒号表示该函数将返回合同类型的内容。

例如,用

const foo = (function(): Foo {
  // lots of code
  return someExpression;
})();

这将表明 - 并且需要 TypeScript - someExpression 是 Foo 类型。

在 TypeScript 中,注意这样的函数的返回类型通常是可选的。大多数时候,你可以完全省略它,如果你愿意,让 TS 自动推断它。 (这是我更喜欢减少语法噪音的原因)

【讨论】:

  • 虽然如果没有分配结果,IIFE 返回任何东西有点奇怪。
  • :facepalm。对我来说绝对为时已晚。现在去睡觉了。
猜你喜欢
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 2012-02-22
  • 1970-01-01
相关资源
最近更新 更多