在引入一些年久的js文件的时候,会存在编辑器不提示或报错的情况
主要原因是这些库是js编写的,开发者并没有编写为ts支持的声明文件
可以尝试输入
npm i @types/包名 -D
安装某个库的声明文件
这是一段express的一段代码,我们尝试在ts的环境下运行
import express from "express"
const app = express()
const router = express.Router()
app.use("/", router)
router.get("/", (req, res) => {
res.json({msg: "hi fengfeng",code: 200})
})
app.listen(9000, () => {
console.log("server: http://127.0.0.1:9000")
})
自己编写声明文件
import axios from "axios";
import express from "express"
const app = express()
const router = express.Router()
app.use("/", router)
router.get("/", (req: any, res: any) => {
res.json({code: 200})
})
app.listen(9000, () => {
console.log("running: :9000")
})
发现报错,且没有提示

在项目根目录下创建一个typings的目录
在目录下创建express.d.ts的声明文件
declare module "express" {
interface Router {
get(path: string, cb:(req:any, res:any)=>void):void
}
interface App {
use(path: string, router: any): void
listen(port: number, cb?:()=>void)
}
interface Express {
(): App
Router(): Router,
}
const express: Express
export default express;
}