【发布时间】:2012-11-10 23:57:47
【问题描述】:
我从 Typescript 开始,发现文档无法处理的语法:
statsTemplate: (params: any) => string;
【问题讨论】:
-
这意味着 statsTemplate 是一个函数,它接受一个名为 params 的任何类型的参数并返回一个字符串。
标签: typescript
我从 Typescript 开始,发现文档无法处理的语法:
statsTemplate: (params: any) => string;
【问题讨论】:
标签: typescript
作为一个整体,该语句定义了所谓的“函数类型文字”(第 3.5.5 节 函数类型文字):
函数类型字面量定义了一个对象类型,它包含一个 调用签名。
FunctionType: ( ParameterListopt ) => ReturnType
换句话说,在这里你定义了一个名为 statsTemplate 的类型,它(显然)表示返回 string 类型值的函数 - 并采用任何类型的单个参数......这实际上是 TypeScript 中的一种特殊类型(第 3.1 节 Any 类型):
Any类型用于表示任何 JavaScript 值。的一个值Any类型支持与 JavaScript 中的值相同的操作,并且不支持 对 Any 值的操作执行静态类型检查。 具体来说,可以通过Any访问任何名称的属性 value 和Anyvalues 可以作为函数或构造函数调用 任何参数列表。
如您所见,它实际上在文档 (PDF) 中有很好的描述。
【讨论】:
有时通过实现一个类型来解释它更容易:
var statsTemplate = function(params: any) : string {
return 'Hello World';
};
这是以下实现:
(params: any) => string;
【讨论】: