首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typescript错误:“”全局“”类型上不存在属性“”localStorage“”

Typescript错误:“”全局“”类型上不存在属性“”localStorage“”
EN

Stack Overflow用户
提问于 2019-01-26 01:51:16
回答 1查看 3.1K关注 0票数 2

打字书呆子我有这个代码:

代码语言:javascript
复制
import * as appSettings from 'application-settings';

try {
    //  shim the 'localStorage' API with application settings module 
    global.localStorage = {
        getItem(key: string) {
            return appSettings.getString(key);
        },
        setItem(key: string, value: string) {
            return appSettings.setString(key, value); 
        }
    }

    application.start({ moduleName: 'main-page' });
}
catch (err) {
    console.log(err);
}

…VScode给了我关于如何解决这个问题的error [ts] Property 'localStorage' does not exist on type 'Global'. [2339]想法?

这是一个Nativescript应用程序。这里有整个文件/app:https://github.com/burkeholland/nativescript-todo/blob/master/app/app.ts供参考

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-26 02:09:04

这是TypeScript所期望的,global类型不包括localStorage,所以它只是试图让您知道它是一个无效的属性。

您可以通过将其转换为any来简单地克服该错误。

代码语言:javascript
复制
(<any>global).localStorage = {
    getItem(key: string) {
        return appSettings.getString(key);
    },
    setItem(key: string, value: string) {
        return appSettings.setString(key, value); 
    }
}

或者,您甚至可以从通常位于项目根目录下的references.d.ts扩展global类型。如果不存在,您可以创建一个。

代码语言:javascript
复制
declare namespace NodeJS {
    interface Global {
        localStorage: { getItem: (key: string) => any; setItem: (key: string, value: string) => any; };
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54370475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档