Машинопись: как импортировать класс, который был экспортирован с помощью `экспорт = uuid`

голоса
0

Я пытаюсь использовать node_module uuid-jsв машинописи. Я установил как модуль и печатать.

Вопрос: Как импортировать модуль?


Метод , который я хочу использовать это uuid.create.

Это определяется в uuid-jsтипизации «S , как это:

export = uuid;
declare class uuid {
    equals(uuid: uuid): boolean;
    ... 
    static create(version?: number): uuid;
    ...
}

Машинописный документ говорит , что:

При импорте модуля с помощью экспорта =, модуля импорта машинописи конкретной = требуется ( «модуль») должно быть использовано для импорта модуля.

Который, кажется, подразумевает, что мне нужно сделать это:

import UUID = require('uuid-js');

Который, кажется, компилировать к этому:

const UUID = require(uuid-js)  

Есть ли причина, почему я должен использовать импорт вместо сопзЬ в моем коде? Почему бы просто не использовать скомпилированный код напрямую?

Я чувствую, как использование требует вообще нечетное. Может быть, я лучше без использования типизации или делать что-то еще ...?

В чем разница между использованием:

import UUID = require('uuid-js');

А также

const UUID = require(uuid-js)  

Я также попробовать использовать более традиционную стратегию импорта, как Madara Uchiha предложил, но я получаю ошибки.

Используя import * as UUID from 'uuid-js'результаты:

error TS2497: Module '.../node_modules/@types/uuid-js/index' resolves to a non-module entity and cannot be imported using this construct.

И используя import UUID from 'uuid-js';результаты:

error TS1192: Module '.../node_modules/@types/uuid-js/index' has no default export.
Задан 29/01/2018 в 18:39
источник пользователем
На других языках...                            


2 ответов

голоса
1

Оба , import something = require('something')и export = somethingэто наследие Синтаксисы изобретенной машинописи , прежде чем ES2015 модули были вещью.

Теперь мы используем стандартный синтаксис модуля, например, так:

import * as UUID from 'uuid-js'; // if uuid-js has no export default
// or
import UUID from 'uuid-js'; // if it does.

В типизации фрагмента вы позировали означает, что вы должны использовать прежний.

Ответил 29/01/2018 в 18:43
источник пользователем

голоса
0

Как эти разные

importтакже импортирует типы . const/requireне.

Ответил 29/01/2018 в 18:42
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more