Я установил navigo
и @types/navigo
в свой проект Typescript, используя npm.
я хочу использовать
new Navigo(null, true, "#!");
Если не импортировать navigo
, я получаю сообщение об ошибке
TS2686: 'Navigo' refers to a UMD global, but the current file is a module. Consider adding an import instead.
При использовании import Navigo from 'navigo';
я получаю сообщение об ошибке
TS1192: Module '"path/node_modules/@types/navigo/index"' has no default export.
При использовании import { Navigo } from 'navigo';
я получаю
TS2497: Module '"path/node_modules/@types/navigo/index"' resolves to a non-module entity and cannot be imported using this construct.
При использовании import module = require("module");
я получаю
TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
Что здесь не так?
Использование этого определения типа https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/navigo/index.d.ts
Мне кажется, что это проблема с типами, которые вы установили. Погружаясь в исходный код для Navigo, он определенно использует экспорт по умолчанию. Файл типизации экспортируется с использованием синтаксиса export =
, который вы можете читайте больше здесь. Кажется, что эти два несовместимы напрямую:
export =
andimport = require()
Both CommonJS and AMD generally have the concept of an
exports
object which contains all exports from a module.They also support replacing the
exports
object with a custom single object. Default exports are meant to act as a replacement for this behavior; however, the two are incompatible. TypeScript supportsexport =
to model the traditional CommonJS and AMD workflow.The
export =
syntax specifies a single object that is exported from the module. This can be a class, interface, namespace, function, or enum.When exporting a module using
export =
, TypeScript-specificimport module = require("module")
must be used to import the module.
@Asken Что случилось с вашей проблемой определения Navigo Typescript? Я искал его, но не нашел в их системе отслеживания проблем на Github.
@Chris Честно говоря, я написал свой собственный. Я перестал искать ярлыки и использую только самые распространенные пакеты.
Спасибо. Итак, я регистрирую это как проблему на github?