Как импортировать функцию, экспортированную с использованием данной конструкции экспорта?

В DefinitelyTyped есть определение для Highlight.js, которое определяет и экспортирует модуль следующим образом:

declare module "highlight.js"
{
    module hljs
    {
        export function highlight(
            name: string,
            value: string,
            ignore_illegals?: boolean,
            continuation?: boolean) : IHighlightResult;
        ...
    }
    export = hljs;
}

В заданном машинописном файле я пытаюсь импортировать объект hljs, чтобы вызвать для него функцию highlight, например так:

/// <reference path="../../tsd_typings/highlightjs/highlightjs.d.ts" />

import {hljs} from 'highlight.js';

...

hljs.highlightBlock(block);

Но нельзя сказать, что error TS2305: Module '"highlight.js"' has no exported member 'hljs'.

Как правильно импортировать этот объект, чтобы я мог скомпилировать свои файлы TS без ошибок и предупреждений?


person Edy Bourne    schedule 12.10.2015    source источник


Ответы (1)


Оператор импорта должен быть:

import * as hljs from 'highlight.js';

Это эквивалент:

import hljs = require('highlight.js');

и импортирует весь модуль как hljs.

person thoughtrepo    schedule 12.10.2015