-
d.ts
文件如果加了import/export
,就不能全局使用了,除非把声明放在declare global
里面
declare global {
interface X {}
}
-
扩展
库的模块,以axios为例:
import {AxiosRequestConfig} from 'axios';
declare module 'axios' {
export interface AxiosRequestConfig {
_autoLoading?: boolean;
}
}
- 如果想给window加全局变量:
// 全局变量
declare var Cesium: any
- 想要在d.ts中声明函数类型:
function sum(a:number): number // declare 可加可不加
- 在
ts文件中引入js变量
会报错,这时候就需要自己声明一个与js文件同名
的.d.ts
文件,然后根据js导出的内容,用ts一一声明
tsconfig.json
"lib": [
"dom", // lib.dom.ts,浏览器的 api
"dom.iterable",
"esnext" // js 的 api
],
- 自己写
ts库
的话,
- 没用工程化环境的情况:
.d.ts
是可以自动生成
的,然后要在tsconfig.json
的types
选项中表明.d.ts文件的路径
tsc -d main.js // 会生成 main.d.ts
- 工程化环境:
tsconfig.json
里添加declaration: true
-
控制加载某个包的types定义
-
总结
- 发布ts包
tsc init
tsc