2017-09-15 12 views
0

Typescriptベースのアプリケーションで優れたCleave.jsライブラリを使用しています。次のようにCleave.jsが使用されている:タイプ定義:モジュールのインスタンスを作成

import * as Cleave from 'cleave.js'; 

new Cleave(element).[whatever] 

開発を支援するために、私はCleave.jsのためのタイピングを開発しています、しかし、私は私が上記の構文を指定することができます活字体でパターンを見つけることができません。

Iが活字体上場合export class Cleave { ...} export default Cleave;

を使用文句:

TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. 

Iが明らかに存在しないインポートされたオブジェクトにdefaultフィールドを見つけるimport Cleave from 'cleave.js' typescriptです試みとしてクリーブをインポートします。

新しい機能のモジュールのタイピングはどのように記述できますか?

+0

'* as'を使ってクラスをインポートすることはできません。 https://stackoverflow.com/a/39415662/1704166 –

答えて

1

これは機能しません。 import * as X from 'y'構文は、モジュール名前空間オブジェクトを作成します。それは呼び出し可能ではありません。

代わりにimport Cleave = require('cleave.js')の構文を使用してください。

タイピングの書き方を学ぶには、http://www.typescriptlang.org/docs/handbook/declaration-files/templates.htmlとハンドブックの関連するセクションを参照してください。

+0

を参照してください。どのようにタイピングを書くべきですか。これが私の最終的な質問ですか? – Sebazzz

+0

そのリンクを更新しました:) – unional

関連する問題