繁体   English   中英

在TypeScript中,`const func:(num:number)=> string = String;`是什么意思?

[英]What is the meaning of `const func: (num: number) => string = String;` in TypeScript?

我正在阅读关于TypeScript的2ality博客文章 ,我遇到了以下代码 -

const func: (num: number) => string = String;

我不明白这种语法的含义。

TypeScript Playground中 ,它编译为 -

var func = String;

根据我的理解, func是一个函数,它接受一个参数num ,函数本身返回一个stringfunc变量被赋值给String所以整个函数变得无用,这意味着上面的东西可以写成简单的 -

const func = String;

我对么? 还是我理解Typescript错了?

const func:(num:number)=> string = String;

这意味着有一个变量func其类型为(num: number) => string ,其值为String类。

现在,字符串构造函数接受一个值并返回一个字符串值。


对于在stringString之间混淆的人

  • string :指字符串值。 So () => string表示返回字符串的函数。 var a = 'abc' ,a是一个字符串
  • String :注意资本S 这是指字符串构造函数,它是一个函数。

以下是String的定义: 在此输入图像描述

它是一个将传递的Number转换为String的函数。

您可以看到,如果输入以下TypeScript:

const func: (num: number) => string = String;
console.log(func(123));
console.log(typeof func(123));
console.log(typeof 123);

它编译为:

var func = String;
console.log(func(123));
console.log(typeof func(123));
console.log(typeof 123);

执行此代码显示123stringnumber

 var func = String; console.log(func(123)); console.log(typeof func(123)); console.log(typeof 123); 

因此,上例中的func返回new String(num) ,这就是为什么123是数字,但func(123)是一个字符串。

它基本上是说func是一个函数(用x => y表示),它将变量名为num的类型number作为输入,并返回一个string 在这种情况下,函数的值被赋给函数String ,这是一个构造函数。

最后, func是一个赋予String构造func的新名称,因此它只接受数字输入。 因此func(5)将等效于String(5) ,它将返回“5”。

请注意,string (num: number) => string表示正在声明的函数的模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM