当前位置:  开发笔记 > 编程语言 > 正文

IntelliJ IDEA报告未解决的变量TypeScript错误,但不允许':any'

如何解决《IntelliJIDEA报告未解决的变量TypeScript错误,但不允许':any'》经验,为你挑选了1个好方法。

我在Angular 2应用程序中具有以下TypeScript代码。

   constructor(private windows:WindowService, private http:Http) {
        http.get('config.json')
            .map(res => res.json())
            .subscribe(config => {
                this.oAuthCallbackUrl = config.callbackUrl; // here
                this.oAuthTokenUrl = config.implicitGrantUrl; // here
                this.oAuthTokenUrl = this.oAuthTokenUrl
                    .replace('__callbackUrl__', config.callbackUrl) // here
                    .replace('__clientId__', config.clientId) // here
                    .replace('__scopes__', config.scopes); // here
                this.oAuthUserUrl = config.userInfoUrl; // here
                this.oAuthUserNameField = config.userInfoNameField; // here
            })
    }

我到过的每个地方// here都会从IDE中收到一条错误消息,提示我有一个“未解析的变量”,例如unresolved variable callbackUrl

问题在于此配置对象是应用程序获取的JSON文件的结果,我不知道如何提前定义其类型。

我以为我可以将订阅行更改为show .subscribe(config:any => {或其他内容,但这没有用。

该代码可以正常编译。一切都可以在浏览器中(并通过Webpack)正常运行。我只是想摆脱IDE中的错误,而不必添加7条//noinspection TypeScriptUnresolvedVariable注释来压制它们。



1> Michael Oryl..:

正如@DCoder在上面的评论中提到的,解决方案是将config参数包装在括号中,然后将类型添加到其中。

constructor(private windows:WindowService, private http:Http) {
    http.get('config.json')
        .map(res => res.json())
        .subscribe((config:any) => {  //               <-- WORKS NOW!
            this.oAuthCallbackUrl = config.callbackUrl;
            this.oAuthTokenUrl = config.implicitGrantUrl; 
            this.oAuthTokenUrl = this.oAuthTokenUrl
                .replace('__callbackUrl__', config.callbackUrl) 
                .replace('__clientId__', config.clientId) 
                .replace('__scopes__', config.scopes); 
            this.oAuthUserUrl = config.userInfoUrl;
            this.oAuthUserNameField = config.userInfoNameField; 
        })
}

缺少括号使我无法在上面添加任何类型的键入信息config

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有