vue3行内js无法使用ts

JavaScript09

vue3行内js无法使用ts,第1张

vue3行内js无法使用ts的处理:TS7053: 元素隐式具有 "any" 类型,因为类型为 "string" 的表达式不能用于索引类型 "{ doc_image: stringdocx: string[]}"。ts(7053)

ts对于传入的apiType,编译器只知道为字符串而不是具体的doc_image或者docx,所以需要自行使用断言以及显示声明传入的值与这些值一致。

首先 创建i18n文件

/lang/index.ts

然后 在main.ts中引入

在vue模板中使用

在外部的ts文件中使用

范例,HelloWorld.vue

使用ts开发时如果要使用第三方js库的同时还想利用ts诸如类型检查等特性就需要声明文件,类

似 xx.d.ts

同时,vue项目中还可以在shims-vue.d.ts中对已存在模块进行补充

npm i @types/xxx

装饰器用于扩展类或者它的属性和方法。@xxx就是装饰器的写法

常见的有@Prop,@Emit,@Watch

具体使用见文章开头的例子

vuex-module-decorators 通过装饰器提供模块化声明vuex模块的方法,可以有效利用ts的类型系

统。

安装

根模块清空,修改store/index.ts

定义counter模块,创建store/counter

装饰器是工厂函数,它能访问和修改装饰目标。

类装饰器,07-decorator.ts

方法装饰器

属性装饰器

稍微改造一下使其可以接收参数