簡體   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