Ошибка машинописного текста: свойство «localStorage» не существует для типа «Global» - PullRequest
0 голосов
/ 25 января 2019

Ботаники машинописного типа У меня есть этот код:

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 выдает ошибку [ts] Property 'localStorage' does not exist on type 'Global'. [2339] Идеи, как это исправить?

Это приложение Nativescript.Для справки вот весь файл / приложение: https://github.com/burkeholland/nativescript-todo/blob/master/app/app.ts

1 Ответ

0 голосов
/ 25 января 2019

Ожидается, что с TypeScript, global не включает localStorage, поэтому он просто пытается сообщить, что это недопустимое свойство.

Вы можете просто преодолеть ошибку, приведя ее к любому.

(<any>global).localStorage = {
    getItem(key: string) {
        return appSettings.getString(key);
    },
    setItem(key: string, value: string) {
        return appSettings.setString(key, value); 
    }
}

Или вы можете даже расширить набор global с references.d.ts, который обычно находится в корне вашего проекта.Вы можете создать его, если его не существует.

declare namespace NodeJS {
    interface Global {
        localStorage: { getItem: (key: string) => any; setItem: (key: string, value: string) => any; };
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...