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();
Похоже, что вы решили свою проблему некоторое время назад, но на случай, если кто-нибудь столкнется с этой проблемой, я решил, что здесь я приведу свое решение.