2016-04-04 29 views
5
Tek işlevini verir pouch-redux-middleware için yazarak tanımını yazmaya çalışılıyor

:Standart fonksiyon ihracat türü tanımı

interface PouchMiddleware { 
    (a: any): any; 
} 

declare var PouchMiddleware: PouchMiddleware; 

declare module "pouch-redux-middleware" { 
    export = PouchMiddleware; 
} 

Bu sonuçlar: Burada

import PouchMiddleware from 'pouch-redux-middleware' 

PouchMiddleware({...}) 

Ben typings tanımıdır hatada:

Bunu bildirmenin doğru yolu nedir? Sonra şöyle içe

declare function PouchMiddleware(a: any): any; 

declare module "pouch-redux-middleware" { 
    export = PouchMiddleware; 
} 

: transpiling modüllerini commonjs olması için

cevap

4

, sadece için tanım dosyası değiştirmeniz gerekebilir

import PouchMiddleware = require("pouch-redux-middleware"); 

Tür olsa berbat. Birisi daha iyi bir cevap ile gelebilir.

Ben sadece "ES2015" olarak modül ES6 hedeflemesi ve ayarlanması için çalışıyor burada benim önceki cevabı inanıyoruz:

You will need to compile with --allowSyntheticDefaultImports in order to get it to work and then change the interface in the definition file to a function:

declare function PouchMiddleware(a: any): any; 

declare module "pouch-redux-middleware" { 
    export = PouchMiddleware; 
} 

A similar thing happens with the react library. Read more here...

+0

Teşekkür adı 'PouchMiddleware' zaman Ben onu aramaya çalışıyorum. TypeScript'in hata mesajları sadece korkunç ... ama bir şeylerin yanlış tanımladığını tahmin ediyorum. – jgillich

+0

"declare var PouchMiddleware: PouchMiddleware;" ifadesini eklemek derlemeyi yapar, ancak çalışma zamanında başarısız olur: "pouch_redux_middleware_1.default işlevi değil". – jgillich

+0

Aslında, ya tepki için işe yaramıyor. Hmm. – jgillich

0

Genelde dışa ve aşağıdaki yapıyı kullanarak sınıfını alabilirsiniz.

module pouch-redux-middleware { 
    export class pouch { 

    } 
} 

ihraç sınıfını kullanmak için, yazmak gerekir: - seçeneği ile ben `bulamıyor olsun da,

import {pouch} from 'FileName' 

Saygılar

Ajay

+0

Gönderiyi değiştiremiyorum. – jgillich

+0

.d.ts dosyasını kese-redux-middleware dosyası yapmak ve örnek dosya için angular-material.d.ts dosyasına başvurmak isterseniz. .d.ts dosyasında dışa aktarılmış üye yok. – Ajay