машинопись не может разрешить тип - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь использовать log4javascript в проекте и вижу, что в пакете есть log4javascript.d.ts, присутствующий в node_modules / log4javascript /, и package.json ссылается на него в свойстве "typings", но при компиляции моегопроект, на который он жалуется:

S2307: не удается найти модуль 'log4javascript'

Я импортирую модуль, используя:

import {getLogger } from 'log4javascript';

Из чего японять, что не нужно устанавливать наборы по отдельности с помощью:

npm install @ types / log4javascript

, поскольку набор уже существует.Но я не уверен, как мне использовать типы модулей и методы, если у меня есть:

"noImplicitAny": true,

, установленный в моем tsconfig.json

Мой tsconfig.json выглядит следующим образом:

{
    "compileOnSave": true,
    "compilerOptions": {
        "noImplicitAny": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "sourceMap": true,
        "target": "es2015",
        "declaration": true
    },
    "include": [
        "static/js/**/*"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}

1 Ответ

0 голосов
/ 13 ноября 2018

Вам необходимо указать в tsconfig.json опцию "moduleResolution": "node"

Если вы укажете target: "es2015", тогда система модулей будет es2015. Если модульная система имеет значение es2015, тогда разрешение для модулей по умолчанию равно clasic, которое не ищет в node_modules типы (как указано здесь ). Вы можете найти это в документации для компилятора options

...