为vue包(vue datetime)创建typescript定义文件

为vue包(vue datetime)创建typescript定义文件,typescript,vue.js,Typescript,Vue.js,我将Vue.js与typescript结合使用。我想在我的项目中使用。这个包还没有typescript定义文件,所以我正在尝试创建一个最小版本 我已将index.d.ts文件添加到node\u modules/vue datetime文件夹中: import Vue from 'vue'; declare class Datetime extends Vue { } declare class DatetimePopup extends Vue { } export default Date

我将Vue.js与typescript结合使用。我想在我的项目中使用。这个包还没有typescript定义文件,所以我正在尝试创建一个最小版本

我已将
index.d.ts
文件添加到
node\u modules/vue datetime
文件夹中:

import Vue from 'vue';

declare class Datetime extends Vue { }
declare class DatetimePopup extends Vue { }

export default Datetime;
export { Datetime, DatetimePopup };
在我的Vue组件中,我现在可以像这样导入和使用包(请注意,我使用的是,因此语法可能与您习惯的有点不同)


从“Vue”导入Vue;
从“vue类组件”导入组件;
从“vue Datetime”导入{Datetime};
导入'vue datetime/dist/vue datetime.css';
Vue.component('v-datetimepicker',Datetime);
@组成部分({
组件:{Datetime}
})
导出默认类MyComponent扩展Vue{
}
这个很好用。问题是我不想将我的
node\u modules
文件夹保存到源代码管理。因此,我认为将定义文件保存到与我的vue组件相同的目录是一个好主意(有更好的选项吗?)

我移动了
index.d.ts
文件,并将其重命名为
datepicker.d.ts
。我还更新了我的vue组件,该组件现在导入日期选择器,如:
import{Datetime}from./datepicker'
。这将不会给我任何编译错误,但打开页面将抛出以下Javascript错误:
Uncaught错误:找不到模块'/datepicker'

我一直在网上寻找这个错误的解决方案,但没有成功。关于我可以尝试什么或出了什么问题,有什么想法吗?

更新 已为存储库中的
vue datetime
包添加了一个

原始答案 好的,我已经开始工作了。我不得不做几件事

1。将声明文件
datepicker.d.ts
重命名为
MyComponent.d.ts
MyComponent
”是我要在其中使用包的Vue组件的确切名称。我不确定是否有必要,但声明文件与组件位于同一文件夹中

2。我将声明文件的内容更改为:

declare module 'vue-datetime' {
    import Vue from 'vue';
    class Datetime extends Vue { }
    class DatetimePopup extends Vue { }
    export { Datetime, DatetimePopup }
}
3。我将导入行从“/datepicker”更改为“
import{Datetime}”,从“vue Datetime”更改为“
import{Datetime}”


现在,它已经全部编译完毕,我没有任何运行时错误。

如果您不想将node\u modules文件夹保存到源代码管理,那么为什么不将其添加到.gitignore?我有这个功能,但是当我将声明文件保存到node\u modules文件夹时,该文件不会分发给其他开发人员(因为它被.gitignore忽略)。并且该文件是必需的,否则应用程序将无法编译。
declare module 'vue-datetime' {
    import Vue from 'vue';
    class Datetime extends Vue { }
    class DatetimePopup extends Vue { }
    export { Datetime, DatetimePopup }
}