说明
普通的.ts
文件是局部的 只有.d.ts
文件是全局的
全局
ts
// xxx.d.ts
// 只能在文件顶部导入全局模块
import type { CSSProperties } from 'react'
// 将本文件声明为模块
export {}
// 在模块外的不会被导出 但是可以被模块内引用
type C = 1
// 拓展已有的全局模块
declare global {
export const A = 1
// export 写不写没影响
type B = 2
type D = C
}
不推荐的写法
老版本ts的语法 当时还没有模块 全在用namespace
ts
const A = 1
type B = 2
模块
ts
// xxx.d.ts
declare module 'A' {
export const a = 1
}
ts
// 其他文件
import {a} from 'A'
如果需要导入其他模块
ts
// xxx.d.ts
// 不能在模块外部import 或 export
// 写在外面不会被视作模块的内容 可以被模块里引用
type B = string
declare module 'A' {
// 可以导入全局模块 必须写在模块内部的顶部
import { CSSProperties } from 'react'
export type Style = CSSProperties
// 写不写export 都可以 但export会使编辑器更好地处理引用
type A = 1
type B = B
}