Typescript不能对类型缺少调用或构造签名的表达式使用'new'

时间:2017-03-02 22:58:00

标签: typescript typescript-typings

我正在尝试使用新的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类型文件中。我看不出有什么遗漏。我希望你们其中一个人可以为我揭开它。

谢谢,

1 个答案:

答案 0 :(得分:1)

AuthenticationContext是否在范围内?看起来只有adl.AuthenticationContext在范围内。

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

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

位于文件顶部。