Typescript выбрасывает свойство не существует для типа, даже если включен файл типа

Я использую TypeScript с Webpack и ES6. Я пытаюсь импортировать модуль Showdown и использовать его для преобразования уценки в HTML. Вот мой app.ts код:

/// <reference path="../typings/tsd.d.ts" />

import 'zone.js';
import 'reflect-metadata';
import 'es6-shim';

import * as showdown from 'showdown';

import {Component, View, bootstrap} from 'angular2/angular2';

@Component({
  selector: 'markdown-app'
})
@View({
  templateUrl: '/app/markdownApp.html'
})
class MarkdownAppComponent {
  public html: string;
  private md: any;

  constructor() {
    this.html = '';
    this.md = showdown.Converter();
  }

  public updateValue(val) {
    this.html = this.md.makeHtml(val);
  }
}

bootstrap(MarkdownAppComponent);

Когда я пытаюсь конвертировать TS в ES6, я получаю следующую ошибку:

ERROR in ./src/app/app.ts
(23,24): error TS2339: Property 'Converter' does not exist on type 'typeof Showdown'.

Я использую TSD для установки всех определений типов. Angular хорошо загружается, но, похоже, у Showdown возникают проблемы. Файл типа Showdown кажется правильным (включая свойство Converter), и, насколько я понимаю, он загружается нормально.

Я консоль вышла из showdown переменная, чтобы убедиться, что Showdown действительно стал импортером, и у него есть свойство Converter.

Есть идеи?

1 ответ

Решение

Я столкнулся с подобной проблемой, и мне пришлось сделать:

this.md = new showdown.Converter();

вместо

this.md = showdown.Converter();

Похоже, что вы решили свою проблему некоторое время назад, но на случай, если кто-нибудь столкнется с этой проблемой, я решил, что здесь я приведу свое решение.

Другие вопросы по тегам