我正在尝试使用新的sharepoint框架创建一个sharepoint webpart,它使用了微软图 as shown here:
以下是我用于reference的示例。
我使用yeoman生成器为sharepoint创建了一个新项目。
已安装的adal:npm install adal-angular
adal安装的打字:typings install adal --source dt --global --save
从WebPart.tsx文件中复制相关部分:
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;
}
该行:
private authCtx: adal.AuthenticationContext;
在识别adal类型文件中创建的命名空间adal时没有问题。
但是,行:
this.authCtx = new AuthenticationContext(config);
给我错误:不能对类型缺少调用或构造签名的表达式使用'new'
构造函数位于adal类型文件中。我看不出有什么遗漏。我希望你们其中一个人可以为我揭开它。
谢谢,
答案 0 :(得分:1)
AuthenticationContext
是否在范围内?看起来只有adl.AuthenticationContext
在范围内。
this.authCtx = new adl.AuthenticationContext(config);
或
import { AuthenticationContext } from 'path/to/adl'
位于文件顶部。