声明文件d.ts

声明文件 declare

当使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全、接口提示等功能。

declare var 声明全局变量
declare function 声明全局方法
declare class 声明全局类
declare enum 声明全局枚举类型
declare namespace 声明(含有子属性的)全局对象
interface  type 声明全局类型
/// <reference /> 三斜线指令

如果有一些第三方包确实没有声明文件我们可以自己去定义

名称.d.ts 创建一个文件去声明

// index.ts
import express from 'express'

const app = express()

const router = express.Router()

app.use('/api', router)

router.get('/list', (req, res) => {
    res.json({
        codeL 200
    })
})

app.listen(3000, () => {
    console.log('localhost:3000')
})
// 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): void
    }

    interface Express {
        (): App
        Router(): Router
    }

    const express: Express

    export default express
}

关于这些第三方的声明文件包都收录到了npmopen in new window

贡献者: mankueng