如何理解这个TypeScript/ES6函数的语法



我正在学习TypeScript/ES6教程。

以下代码工作,例如输出["Richard Francis Burton"]:

let convertToStringArray: (v: string) => string[] = (value) => [value];
let name = "Richard Francis Burton";
let names = convertToStringArray(name);
console.log(names);

但是如何理解TypeScript/ES6语法呢?

  • convertToStringArray是具有参数名称v的函数名称,参数名称必须为string类型
  • 该函数返回string[] = (value) => [value];

但这与以下不起作用的函数相同(Error TS1011: An element access expression should take an argument.(

function convertToStringArray(v: string) {
return string[] = (value) => [value];
}

此函数返回string[] = (value) => [value];

否,函数返回string[],变量初始化为(value) => [value];

declaration           TypeScript type         (initial) value
/                        /                        /                
let convertToStringArray: (v: string) => string[] = (value) => [value];

您混淆了内联类型注释和函数本身。这意味着你有一个类型为(v: string) => string[]的变量convertStringToArray,它被赋值为(value) => [value]。它相当于:

function convertToStringArray(value: string): string[] {
return [value];
}

游乐场

最新更新