【发布时间】:2021-10-17 22:55:04
【问题描述】:
我使用的是 svelte-calendar@2.0.4,它没有 TypeScript 定义。
我尝试将以下类型定义添加到我的 global.d.ts 中,但在 VS Code 中收到警告
JSX 元素类型 'Datepicker' 在 Datepicker 的实例上没有任何构造或调用 signatures.ts(2604):
<Datepicker bind:selected={selectedDate} {start} class="btn btn-sm">
<button class="btn btn-sm btn-secondary date-picker">{selectedDateString}</button>
</Datepicker>
添加到 global.d.ts...
declare module 'svelte-calendar' {
interface DatepickerProps
extends svelte.JSX.HTMLAttributes<HTMLElementTagNameMap['div']> {
format?: string
start?: Date
end?: Date
selected?: Date
dateChosen?: boolean
trigger?: () => void
selectableCallback?: () => void
weekStart?: number
daysOfWeek?: Array<string, string>
monthsOfYear?: Array<string, string>
style?: string
buttonBackgroundColor?: string
buttonBorderColor?: string
buttonTextColor?: string
highlightColor?: string
dayBackgroundColor?: string
dayTextColor?: string
dayHighlightedBackgroundColor?: string
dayHighlightedTextColor?: string
}
export class Datepicker extends SvelteComponentTyped<DatepickerProps> {}
}
我从未尝试为第 3 方组件添加类型。对我做错了什么有什么想法吗?
【问题讨论】:
-
作为一种解决方法,请尝试
import Datepicker from 'svelte-calendar/src/Components/Datepicker.svelte'。还有一个类似的问题:github.com/6eDesign/svelte-calendar/issues/119 -
谢谢 - 这是一个很好的解决方法!为 svelte-calendar 记录的问题来自我 ;-)
标签: typescript typescript-typings svelte svelte-component