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

How to create object from static method which accepts function

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

        };
   }

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

我做的是这个

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

你能告诉我怎么做吗?

您的 fromDto return 是一个函数,其签名与 map 数组函数回调相匹配。目前,您的 map 回调没有 return 任何内容,因此将生成一个 undefined 值数组。

您可以使用长版本和 return 来自回调:

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

或者稍微短一点的单行正文版本:

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

或者您可以将函数作为回调传入:

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

演示:https://stackblitz.com/edit/angular-nsdpcr