“typeof MsalService”类型的参数不可分配给角度中“MsalService”类型的参数

问题描述 投票:0回答:1

我正在尝试在打字稿/角度中创建一个类的对象。 在我的项目中,有一个场景我必须从导出函数调用到打字稿中另一个类中的方法

  const myObject = new TokenService(MsalService);

我收到以下错误。如何解决这个错误?我已经被困在这里大约一整天了。

“typeof MsalService”类型的参数不可分配给参数 类型为“MsalService”。类型“typeof MsalService”缺少 “MsalService”类型的以下属性:实例、位置、 redirectHash、记录器和 13 个 more.ts(2345) graphql.module.ts(59, 37): 您的意思是在这个表达中使用“新”吗?

实际的类有一个构造函数

angular angularjs typescript graphql
1个回答
0
投票

所以你有一个需要调用的方法,最好的方法是使该方法

static
。我只是将该方法设置为公共,以确保其在类外部可访问,这是一个可选步骤!

import { Injectable } from '@angular/core';

@Injectable()
export class MsalService {

  constructor() { }

   public static someMethod() {
        // do something...
   }

}

这意味着,你可以像这样调用这个方法

MsalService.someMethod()

无需初始化类即可访问该方法,这将为您省去初始化的麻烦!

我们无法初始化这样的服务(

new TokenService(MsalService)
),因为服务是 Angular 中的单例,通过依赖注入来处理,因此将方法转换为静态方法并将必要的详细信息作为参数传递将可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.