今天在项目代码里看见这么一段
export default function asyncComponent(getComponent: () => Promise<any>) {
….
}
主要懵在这个参数上
asyncComponent(getComponent: () => Promise<any>)
冒号左边 getComponent 应该是参数名
冒号右边 () => Promise<any> 应该是这个参数的类型
但是() => Promise<any>到底是个什么类型呢?
写个例子试一试
Main.ts
import { Service } from "./Service";
var test: () => Service;
test = () => {
var p = new Service();
return p;
};
console.log(typeof test);
Service.ts
export class Service {}
上面这个例子的运行结果是

所以() => Service 表示的是一个function, function的返回值是Service的对象
那么
export default function asyncComponent(getComponent: () => Promise<any>)
表示
1. 有一个方法叫 asyncComponent
2. asyncComponent方法的参数是 getComponent
3. getComponent 返回值的类型是 Promise<any>
稍微做一下改动可以看的更清楚
