ts项目中可以使用js的插件吗

比如我项目是vue-cli3的ts模式,现在大部分插件及库都是有ts版本的
但是,如果某个插件和库不支持ts,那我项目中还能使用这个插件吗?
如果可以使用,我需要修改什么吗? 还是直接使用

npm i xxxx -S
import 'xxxx'

这样吗?

阅读 8.8k
2 个回答

可以使用。

如果对应的插件没有ts声明文件,可以先到TypeSearch搜索有没有@types/xxxx文件,例如react对应的是@types/react;

没有搜到的话,那只能自己声明了,例如:

src/
index.d.ts // <- 我一般习惯在这里全局声明

例如:

// 如果懒得写声明,可以直接这样,表示为any
declare module 'rmc-notification'

// 更详细的声明
declare module 'rc-switch' {
  const Switch: React.FC<{
    disabled?: boolean
    checked?: boolean
    defaultChecked?: boolean
    onChange?: (checked: boolean, event: MouseEvent) => void
  }>
  export default Switch
}

// 这里也可以对现有的全局类型进行扩展
// 现在可以访问window.isWX了
declare interface Window {
  isWX: boolean
}

查看Typescript的官方文档,学习如何写声明文件

TS引用JS库如果JS库没有对应的声明文件编译器是不会报错的,因为没有声明文件的JS模块会隐式的获得any类型,除非tsconfig.json中有noImplicitAny: true这样的配置,指明了如有隐式转换为any类型就报错,才会报错。

可以参考 vue-element-admin-ts

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题