TS-узел не может найти мои файлы определения типа - PullRequest
1 голос
/ 21 марта 2020

Когда я запускаю ts-node node_modules/jasmine/bin/jasmine, я получаю следующие ошибки:

tsc/globals.ts:7:12 - error TS2304: Cannot find name 'SugarcubeState'.

7     State: SugarcubeState;
             ~~~~~~~~~~~~~~

Вот этот глобальный файл:

/* eslint-disable @typescript-eslint/no-explicit-any */
console.log("global.ts");

// eslint-disable-next-line @typescript-eslint/no-namespace
declare namespace NodeJS {
  interface Global {
    State: SugarcubeState;
    setup: {};
  }
}

declare const State: SugarcubeState = {
  variables: {}
};

declare const setup: any = {
  variables: {}
};

Вот мой index.d.ts:

type SugarcubeVariables = {
};

type SugarcubeState = { variables: SugarcubeVariables };

Они оба находятся в одном каталоге и код Visual Studio ни на что не жалуется. Почему ts-node не может найти мои файлы определения типа?

Я гуглил это и нашел этот веб-сайт: https://github.com/TypeStrong/ts-node#help -my-types-are-missing Следуя его советам, я изменил свой файл tsconfig, чтобы иметь

"typeRoots": ["tsc"],                       /* List of folders to include type definitions from. */

, но это не повлияло на ошибку. Я также попробовал это:

    "types": ["tsc/index.d.ts"],                           /* Type declaration files to be included in compilation. */

Но опять же, нет никакой разницы в ошибках, которые я получил. Как заставить ts-node распознавать мои файлы .d.ts?

PS: Если вам интересно, почему я так определяю, посмотрите этот ответ { ссылка }


Я перечитал эту ссылку, и оказалось, что мне нужна очень конкретная c структура каталогов. Проблема в том, что мне нужно только имя модуля в этой структуре каталогов, и, учитывая то, как я написал свой index.d.ts, я понятия не имею, как назвать этот каталог.

...