使用Bootstrap+Lint+TypeScript,如何解决Collapse类型定义的Lint报错?
解决Bootstrap Collapse类型报错的简便方法
不用靠注释抑制ESLint警告,有两种更规范的简便修复方式:
1. 安装官方类型定义包(推荐)
Bootstrap有官方维护的TypeScript类型包,安装后自动获得完整类型支持,无需手动声明:
npm install @types/bootstrap --save-dev # 或者用yarn yarn add @types/bootstrap --dev
安装完成后,直接删除declare let bootstrap: any;这句代码,bootstrap.Collapse的类型会被自动识别,ESLint的no-explicit-any警告也会消失。
2. 手动定义所需的最小类型
如果不想安装额外包,可以针对你用到的Collapse功能定义局部类型,避免使用any:
// 定义Collapse实例的方法 interface CollapseInstance { show(): void; // 按需添加你用到的其他方法,比如hide()、toggle() } // 定义Collapse构造函数类型 interface CollapseConstructor { new(element: HTMLElement, options?: { toggle?: boolean }): CollapseInstance; } // 定义bootstrap全局对象的类型 interface BootstrapGlobal { Collapse: CollapseConstructor; } declare let bootstrap: BootstrapGlobal;
这种方式只声明你实际用到的类型,既满足ESLint要求,又不会引入冗余代码。
内容的提问来源于stack exchange,提问作者rlegendi
相关产品推荐
相关产品推荐

