Angular 如何从接受函数的静态方法创建对象

Angular 如何从接受函数的静态方法创建对象,angular,typescript,angular7,Angular,Typescript,Angular7,如何从typescript中的这个静态方法获取Note对象。我已经创建了一个Dto对象,并试图将其传递给这个方法,该方法将给我一个Note对象,但似乎无法做到这一点 我所做的就是这样 static fromDto(httpClient: HttpClient, adalSvc: MsAdalAngular6Service) { return (dto: Dto) => { return new Note(httpClient, dto.xxx, ada

如何从typescript中的这个静态方法获取Note对象。我已经创建了一个Dto对象,并试图将其传递给这个方法,该方法将给我一个Note对象,但似乎无法做到这一点

我所做的就是这样

 static fromDto(httpClient: HttpClient, adalSvc: MsAdalAngular6Service) {
        return (dto: Dto) => {
          return new Note(httpClient, dto.xxx, adalSvc);

        };
   }

你能告诉我怎么做吗?

你的
fromDto
返回一个函数,其签名与
映射
数组函数回调匹配。此时,您的
map
回调没有返回任何内容,因此将生成一个
未定义的
值数组

您可以使用长版本并从回调返回:

const notes=dtos.map(d=>{
返回说明。从DTO(空,空)(d);
});
或略短的版本,带有单线主体:

constnotes=dtos.map(d=>Note.fromDto(null,null)(d));
也可以将函数作为回调传入:

const notes=dtos.map(Note.fromDto(null,null));
演示:

const notes = dtos.map(d => {
Note.fromDto(null, null).apply(d); });