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.