Bir npm paketi ile dahil etmek için bir "dış modül" TypeScript tanım dosyası nasıl oluşturulur?
Kısa süre önce açık kaynaklı redux-ui-router kütüphanesi için bir TypeScript tanım dosyası ekledim, ancak şimdi TypeScript 1.7.3 ile aşağıdaki gibi hatalar alıyorum:
hata TS2656: Dışa aktarılmış harici paket tanımlama dosyası 'C:/.../node_modules/redux-ui-router/index.d.ts' bir modül değil. Lütfen paket tanımını güncellemek için paket yazarıyla iletişime geçin.
Typescript dosyalarımda bu kütüphaneyi şu şekilde bir kodla içe aktarmaya çalışıyorum:
import ngReduxUiRouter from "redux-ui-router";
Typescript'e yeniyim ve bir npm paketiyle dahil edildiğinde bu tanım dosyasının tam olarak nasıl görünmesi gerektiğine dair net bir açıklama bulamıyorum. Npm paketleri için tipleme hakkında konuşan bir wiki girişi var, ama harici bir modül kullanılacağı yönünü tekrarlamanın dışında, üzerinde çalışılabilecek somut bir örnek bulunmuyor.
DÜZELTME declare module "redux-ui-router" { kodunu kaldırmayı denedim, ve her şeyi derlemek için kullandığım webpack'i yeniden başlattıktan sonra işe yarıyor gibi göründü (kısalık sağlamak için yorumları kaldırdım):
export interface ReduxUIRouterAction {
type: string;
payload: any;
}
export interface ReduxUIRouterState {
currentState: Object;
currentParams: Object;
prevState: Object;
prevParams: Object;
}
export function router(state: ReduxUIRouterState, action: ReduxUIRouterAction): ReduxUIRouterState;
export var ngReduxUiRouter: string;
export function stateGo(to: string, params?: Object, options?: Object): ReduxUIRouterAction;
export function stateReload(state: any): ReduxUIRouterAction;
export function stateTransitionTo(to: string, params?: Object, options?: Object): ReduxUIRouterAction;
export default ngReduxUiRouter;
Bu değişiklikler seti, bunu bir npm paketine dahil ederken beklenen şey midir?
Cevap #1
Bu değişiklikler seti, bunu bir npm paketine dahil ederken beklenen şey midir?
Evet. İhracatlar dosyada kök seviyede olmalıdır.
Başka bir deyişle: bir ortam dosyası harici bir modül değildir