私はshowdownjsとTypeScriptを使用しています。ライブラリの定義ファイルはDefinitelyTypedです。DefinitelyTyped定義ファイルを使用中にエラーが発生しました
問題は、私はこのライブラリが間違っていると思うことです。ドキュメントでは、コンバータをこのようにインスタンス化する必要があります。
var converter = new showdown.Converter();
しかし、活字体の定義にそうすることは、それが存在しないというエラーメッセージを生成 - .d.ts
での名前空間はShowdown
ですが、ライブラリはグローバルリテラルshowdown
に存在するため。
定義は、下部にshowdown
という名前のモジュールをエクスポートしますが、これは私のIDEによってピックアップされていないようです。
だから私の質問は:これは活字体が動作するようになっている方法である、またはそれは私が定義を固定しようとすると、DefinitelyTypedにプルリクエストを送信するための良いアイデアですか?ここで
は私が対決を使用しています方法の例です。 showdown.d.tsとして
import 'angular';
import showdown from 'showdown';
export class MarkdownConfig {
constructor($showdownProvider: any) {
showdown.extension('notice',() => {
return {
type: 'lang',
regex: /^(^\S+)\s+(>)\s+(.*)/gmi,
replace: (text: string, css: string, method: string, message: string) => {
let converter = new showdown.converter();
return text.replace(/^(^\S+)\s+(>)\s+(.*)/gmi,
`<div class="notice notice-${css}">${message}</div>`);
}
};
});
$showdownProvider.loadExtension('notice');
}
}
どのようにあなたの中に 'showdown'パッケージをインポートしますコード? – Blackus
上記のスニペットを掲載しました。しかし、私は '対決からの対決 '以外の方法を試した。その特定のインポート方法は、私が働いていることがわかっているものだけです。 – Ciel
もちろん、魔法のように、誰かがそれを見るように尋ねる瞬間にエラーを表示しません... – Ciel