ts类型报错

53 阅读1分钟

如何解决js库类型报错

一个ts项目,当引入一个库,这个库没有类型声明,编译器会有如下提示

Could not find a declaration file for module ''

为了在代码中,不出现报错的提示,在全局的.d.ts文件中配置,忽略这个库的类型校验

declare module 'jsencrypt'

declare关键字作用:用于告知ts编译器某个实体(变量/函数/模块)已在外部存在,无需实现细节

实际的作用是:允许在typeScript 项目中直接导入 import JsEncry from 'jsencry' 而不触发类型错误

declare global 和 declare module区别

  1. declare global
    作用域:全局命名空间(widnow、document) 示例:添加全局类型声明
declare global {
    interface Window {
        dra: any; // 为全局window对象添加dra属性
    }
}

2.declare module
作用域:声明外部模块类型 示例:为无类型声明的js库添加类型(如第三方sdk)

declare module '@legos/js-security-v3'
特性declare globaldeclare module
作用域全局外部模块作用域
场景扩展浏览器环境对象为js库添加类型声明
声明位置环境声明文件(d.ts)类型定义文件(d.ts)