Как объявить глобальный, глобальный это в Typescript? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытался найти какой-то обновленный ответ о том, как объявлять глобальные переменные в Typescript. Но я не уверен, какой урок / руководство имеет наиболее обновленное решение.

В любом случае я пытаюсь заставить мой глобальный объект объявить d.ts для работы. Прямо сейчас я настроил так, чтобы мой проект Typescript был собран и упакован с помощью webpack / ts-loader.

Мой файл tsconfig. json выглядит следующим образом. В руководствах, которые я прочитал, сказано, что мне не нужно устанавливать typeRoots, поскольку Typescript может сам находить типы. Я пробовал с и без так или иначе, и оба привели к тому же самому.

{
    "files": [
        "app.ts",
    ],
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "module": "commonjs",
        "moduleResolution": "node",
        "noImplicitAny": false,
        "target": "es5",
        "declaration": false,
        "sourceMap": true,
        "skipLibCheck": true,
        "lib": ["es6", "dom"],
        "esModuleInterop": true,
        "typeRoots": [
            "./typings/",
            "../../../../../node_modules/@types/"
        ]
    }
}

И мой d.ts файл, который я назвал soho.d.ts, содержит следующее

declare global {
    namespace Soho {

    }
    interface Window {
        Soho: Soho;
    }

    interface Soho {
        Locale: any;
    }
}

Я получаю следующую ошибку, хотя в веб-пакете

TS2304: Cannot find name 'Soho'

В коде я пытаюсь использовать свой глобальный код следующим образом

Soho.Locale

Правильно ли я установил мой tsconfig.json файл или что-то не так с моим d.ts файлом?

1 Ответ

0 голосов
/ 03 апреля 2020

В моем файле tsconfig.json есть ошибка. И ошибка находится в указанном свойстве files, которое указывает Typescript использовать этот файл только во время компиляции.

Поэтому мои пользовательские d.ts файлы были пропущены, поэтому ошибки.

Так же, как и для решение. Удалите свойство files или включите папку с пользовательским d.ts, используя свойство include.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...