Typescript d.ts 文件作用
1. 声明全局变量
declare const API_URL: string;declare global {interface Window {customProperty: string; // 自定义属性类型}
}
必须在模块内使用
2. 声明模块
declare module
用于为模块(如文件类型或第三方库)提供类型定义,尤其是当模块没有自己的类型定义时。
declare module '*.png' {const src: string;export default src;
}
3. 声明命名空间
//声明文件
declare namespace IUser {interface User {name: string;age: number;}type I = string;
}
4. 声明类型
declare
可以用来声明类型别名或接口
declare type User = {id: number;name: string;
};
5. 声明外部库
当使用没有类型定义的第三方库时,可以用 declare
为其提供类型定义。
import aa from 'my-lib';不能在模块内使用declare module 'my-library' {export function myFunction(): void;
}
//声明文件
declare namespace IUser {interface User {name: string;age: number;}type I = string;
}// 声明全局变量
declare global {interface Window {customProperty: string; // 自定义属性类型}
}export {IUser};
declare module 'my-lib' {export function myFunction(): void;
}
declare module '*.vue' {import type {DefineComponent} from 'vue';const component: DefineComponent<{}, {}, any>;export default component;}https://cn.vuejs.org/guide/typescript/options-api.html#augmenting-global-properties
import {IUser} from './types/env';
import aa from 'my-lib';
import * as bb from './aaa.vue'
let user: IUser.User = {name: 'John Doe',age: 30,
};let i: IUser.I = '1';
// window.window.customProperty = 'Hello, world!'; // 使用自定义属性