`(function(): Something{})`语法作用是什么?冒号是否为标签语法?
你遇到的这段代码是 TypeScript 代码,其中的冒号不属于 JavaScript 标签语法。
具体说明
- 代码中
function() : Contract里的: Contract是 TypeScript 特有的函数返回值类型标注,用来约束这个匿名函数最终返回的值必须符合Contract类型的定义(Contract通常是开发者提前声明的接口、类或类型别名) - 整段代码本质上还是 IIFE(立即执行函数表达式),只是增加了 TypeScript 类型约束,这段代码编译为可在浏览器/Node.js 运行的原生 JavaScript 时,所有类型标注都会被擦除,最终会变成标准的 IIFE 结构。
- JavaScript 的标签语法只能作用于语句之前,用于配合
break、continue实现指定层级的流程跳转,语法上不允许出现在函数参数闭合括号和函数体大括号之间,完全不符合标签语法的位置规则,因此可以排除是标签的可能。

内容的提问来源于stack exchange,提问作者Mac
相关产品推荐
相关产品推荐

