Typescript, çağrı veya yapıcı imzası olmayan bir tür ile 'new' kullanamaz


Yeni SharePoint çerçevesini kullanarak bir SharePoint web bölümü oluşturmaya çalışıyorum, burada gösterildiği gibi Microsoft Graph'ı kullanıyor:

İşte referans olarak kullandığım bir örnek.

SharePoint için yeoman oluşturucusunu kullanarak yeni bir proje oluşturdum.

Yüklü adal: npm install adal-angular

Adal için yüklenen tipler: typings install adal --source dt --global --save

WebPart.tsx dosyasından ilgili kısımları kopyaladım:

const AuthenticationContext = require('adal-angular');
import adalConfig from '../AdalConfig';
import { IAdalConfig } from '../../IAdalConfig';
import '../../WebPartAuthenticationContext';

export default class ReactClient extends React.Component<IReactClientProps, IReactClientState> {
  private authCtx: adal.AuthenticationContext;

  constructor(props: IReactClientProps, state: IReactClientState) {
    super(props);
  }

this.state = {
  loading: false,
  error: null,
  signedIn: false
};

const config: IAdalConfig = adalConfig;
config.popUp = true;
config.webPartId = this.props.webPartId;
config.callback = (error: any, token: string): void => {
  this.setState((previousState: IReactClientState, currentProps: IReactClientProps): IReactClientState => {
    previousState.error = error;
    previousState.signedIn = !(!this.authCtx.getCachedUser());
    return previousState;
  });
};

this.authCtx = new AuthenticationContext(config);
AuthenticationContext.prototype._singletonInstance = undefined;

}

Satır:

private authCtx: adal.AuthenticationContext;

adal türü dosyasında oluşturulan adal ad alanını tanımlamakta hiçbir sorunu yok.

Ancak, satır:

this.authCtx = new AuthenticationContext(config);

bana şu hatayı veriyor: Çağrı veya yapı imzası olmayan bir ifade ile 'new' kullanılamaz

Kurucu, adal türü dosyasında var. Eksik olanı göremiyorum. Umarım içinizden biri bunu benim için aydınlatabilir.

Teşekkürler,

Cevap #1

AuthenticationContext kapsam dahilinde mi? Görünüşe göre sadece adl.AuthenticationContext kapsam dahilinde.

this.authCtx = new adl.AuthenticationContext(config);

veya

import { AuthenticationContext } from 'path/to/adl'

dosyanın tepesinde.