第十七章 TypeScript 声明文件d.ts

本文介绍了在TypeScript项目中如何通过`declare`关键字引用第三方库(如Express和axios)的声明文件,以获取代码补全和接口提示。还讲述了如何处理没有声明文件的包,以及手写声明文件(.d.ts)的方法和示例。
摘要由CSDN通过智能技术生成

声明文件 declare  

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

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

例如我们有一个express 和 axios

 发现express 报错了

让我们去下载他的声明文件

 npm i --save-dev @types/express

那为什么axios 没有报错

我们可以去node_modules 下面去找axios 的package json

发现axios已经指定了声明文件 所以没有报错可以直接用

通过语法declare 暴露我们声明的axios 对象

declare  const axios: AxiosStatic;

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

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

案例手写声明文件

index.ts

import axiso from 'axios'
import express from 'express'

const app = express();
const router = express.Router()

app.use('/api', router)

router.get('/api', (req, res) => {
	res.json({
		code: 200
	})
})

app.listen(9001, () => {
	console.log('9001')
})

express.d.ts

declare module 'express' {
	interface App {
		use(path: string, router: any): void
		
		listen(port: number, callback?: () => void)
	}
	
	interface Router {
		get(path: string, cb: (req: any, res: any) => void): void
	}
	
	interface Express {
		(): App
		
		Router(): Router
	}
	
	const express: Express;
	
	export default express
}

declare let a: number


declare function xxx(params: type):void{

}

declare class Vue {

}

declare enum C {
	a = 1, b = 2, c = 3, d = 4, e
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值