为Typescript编写的Vue组件生成d.ts文件 [英] Generate d.ts file for Vue components written in Typescript

查看:79
本文介绍了为Typescript编写的Vue组件生成d.ts文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 Vue 的新手,我想学习如何创建组件并将包发布到 NPM.所以,我的想法是创建 Vue (typescript) + Vuetify 可重用组件,并在我拥有的任何其他项目中从 NPM 安装它们.我可以在 vue.js 项目中成功导入我的 HelloWorld 组件,但是当我尝试在 Vue ts 项目中导入时,我收到以下错误:

'找不到模块 'sastify' 的声明文件.'/home/raphael/tester-ts/node_modules/sastify-nv/dist/sastify.common.js' 隐式具有 'any' 类型.尝试 npm install @types/sastify-nv 如果它存在或添加一个包含 declare module 'sastify-nv';

如何生成与我的 JS 项目类似的 .d.ts?

我的项目树是:

── babel.config.js├── package.json├── postcss.config.js├── README.md├── src│ ├──组件│ │ └── HelloWorld│ │ └── HelloWorld.vue│ └── sastify.js├── tsconfig.json├── tslint.json└── yarn.lock

package.json:

<代码>{"name": "sastify-nv",版本":0.1.6",私人":假,脚本":{"serve": "vue-cli-service serve","build": "vue-cli-service build --target lib --name sastify ./src/sastify.js","lint": "vue-cli-service lint --fix",构建:ts":tsc"},文件":["区",源代码"],"main": "dist/sastify.common.js",依赖关系":{"vue": "^2.6.10","vue-property-decorator": "^8.1.0","vuetify": "^2.0.0"},开发依赖":{"@vue/cli-plugin-typescript": "^3.11.0","@vue/cli-service": "^3.11.0","sass": "^1.17.4","sass-loader": "^7.1.0","打字稿": "^3.4.3","vue-cli-plugin-vuetify": "^0.6.3","vue-template-compiler": "^2.6.10","vuetify-loader": "^1.2.2"}}

tsconfig.json:

<代码>{编译器选项":{"目标": "esnext",模块":esnext",严格":真实,"jsx": "保留",importHelpers":真,声明":真实,"outDir": "lib","moduleResolution": "节点","experimentalDecorators": 真,"esModuleInterop": 真,allowSyntheticDefaultImports":真,"sourceMap": 真,"baseUrl": ".",类型":["webpack-env",验证"],路径":{"@/*": [源代码/*"]},库":["esnext","dom","dom.iterable",脚本主机"]},包括": ["src/**/*.ts","src/**/*.tsx","src/**/*.vue","测试/**/*.ts",测试/**/*.tsx"],排除": [节点模块"]}

sastify.js:

export { default as HelloWorld } from './components/HelloWorld/HelloWorld.vue'

components/HelloWorld/HelloWorld.vue: