Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function TypeScript函数类型语法解释_Function_Typescript_Types_Syntax - Fatal编程技术网

Function TypeScript函数类型语法解释

Function TypeScript函数类型语法解释,function,typescript,types,syntax,Function,Typescript,Types,Syntax,我正在阅读TypeScript手册,在函数类型标题下有一个示例(我理解): 然后是 让我们通过查看每个函数的 函数类型的一部分 这个语法: let myAdd: (x: number, y: number) => number = function(x: number, y: number): number { return x+y; }; 有没有人能把这一点分解并解释一下,因为我以前从未见过这一点,在手册中也找不到解释?这一行: let myAdd: (x: number, y

我正在阅读TypeScript手册,在函数类型标题下有一个示例(我理解):

然后是

让我们通过查看每个函数的 函数类型的一部分

这个语法:

let myAdd: (x: number, y: number) => number =
    function(x: number, y: number): number { return x+y; };
有没有人能把这一点分解并解释一下,因为我以前从未见过这一点,在手册中也找不到解释?

这一行:

let myAdd: (x: number, y: number) => number =
    function(x: number, y: number): number { return x+y; };
由3部分组成:

(1) 变量声明,这部分是
let myAdd
。我假设这里没有什么可添加的,就像js一样

(2) 变量的类型:
(x:number,y:number)=>number

这里我们定义了一种函数类型,它需要两个参数,类型都是
number
,名为
x
y

该函数需要返回一个
编号

(3) 变量的赋值:
=函数(x:number,y:number):number{return x+y;}

除了为参数和返回值添加的类型之外,这与javascript一样。
如果查看它,您将看到实际实现与声明的类型完全匹配

你也可以这样写:

let myAdd: (x: number, y: number) => number = function(x, y) { return x+y; };
或:

第一行:

let myAdd: (x: number, y: number) => number
正在声明变量“myAdd”的类型。Typescript可以在第一个示例中自动推断出这一点,或者(第二个示例显示)您可以隐式地告诉Typescript它应该期望什么

第二行:

function(x: number, y: number): number { return x+y; };
指您分配给变量“myAdd”的函数本身的类型

有关说明相同内容的更简单示例:

let myString: (input: string) => string = (input: string) => input;
或者,隐式声明变量类型的另一个示例:

let myNumber: number = 10;

上述两种方法都告诉Typescript变量应该是什么。

手册的解释在您引用的位后面的段落中。在您链接的部分中有解释?“一个函数的类型有两个相同的部分:参数类型和返回类型。当写出整个函数类型时,这两个部分都是必需的。”“第二部分是返回类型。我们通过在参数和返回类型之间使用一个粗箭头(=>)来明确哪个是返回类型。”@AndyJ Yeah,我开始使用胖箭头,但脑子里的箭头功能却乱七八糟,以前也没有见过胖箭头的这种用法。只是需要清理一下,谢谢。让我困惑的主要事情(尽管在手册中有进一步解释)是
=>
的使用,因为我只看到它与箭头函数语法一起使用。那么,它在两种情况下的用法是否具有相同的含义呢?在typescript中,当您编写函数类型时,您对结果类型使用此符号。例如:
typemyfunction=(num:number,str:string)=>void
。不要把它与箭头函数混淆。@camden_kid非常相似,但不一样@k0pernikus链接与此无关。如何实现函数与类型无关。在类型定义中使用胖箭头与箭头无关functions@NitzanTomer雾消散了。我现在明白了,也明白了为什么我有点困惑。
let myString: (input: string) => string = (input: string) => input;
let myNumber: number = 10;