ts中的d.ts声明文件
在引入一些年久的js文件的时候,会存在编辑器不提示或报错的情况 主要原因是这些库是js编写的,开发者并没有编写为ts支持的声明文件 可以尝试输入 npm i @types/包名 -D 安装某
ts中的d.ts声明文件
发布时间:2023-10-12 (2023-10-12)

在引入一些年久的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;
}