typescript - Varsayılan ihraca sahip bir modül için tip tanımını nasıl yazarım
storybook-router için bir tip tanımı yazmak istiyorum. Çok doğru olması gerekmez, çünkü bu küçük bir geliştirme aracı (yani any kullanmak kabul edilebilir), ama buna bile çalıştırmayı başaramıyorum.
Temsil etmek istediğim şey şudur:
import StoryRouter from 'storybook-router';
...burada StoryRouter, @types/storybook__react'ten StoryDecorator arayüzü ile eşleşen bir işlevdir.
Aşağıdaki tanım dosyasını denedim:
import { StoryDecorator } from '@storybook/react';
declare type StoryRouter = StoryDecorator;
export default StoryRouter;
Ne yazık ki, bu şu hatayla sonuçlanıyor:
TS7016: 'storybook-router' modülü için bir bildirim dosyası bulunamadı. '/
/node_modules/storybook-router/dist/StoryRouter.js' dosyası dolaylı olarak 'any' türüne sahiptir. Eğer mevcutsa npm install @types/storybook-routerkomutunu deneyin veya içindedeclare module 'storybook-router';bulunan yeni bir bildirim (.d.ts) dosyası ekleyin.
Ancak, o son örneği (declare module 'storybook-router') kullanırsam, varsayılan bir ihracatı nasıl ayarlayacağımı bir türlü çözemedim.
Bu türü temsil etmenin doğru yolu nedir?
Cevap #1
.d.ts dosyasında import yapmazsınız, sadece modülü beyan edersiniz.
Genellikle, şöyle görünür (any ile en basit kullanım durumu):
// storybook-router.d.ts
declare module 'storybook-router' {
const StoryDecorator:any;
export default StoryDecorator;
}
