[英]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
,函数本身返回一个string
, func
变量被赋值给String
所以整个函数变得无用,这意味着上面的东西可以写成简单的 -
const func = String;
我对么? 还是我理解Typescript错了?
它是一个将传递的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);
执行此代码显示123
, string
和number
:
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.