目 录CONTENT

文章目录

TS(十) 声明文件

Typescript(十) 声明文件

了解就好,用的比较少

使用场景

  • 一般用于js文件想在ts中使用

创建声明文件

简单示例

  • 根目录/src 目录下面 创建声明文件

global.d.ts (global 可以起任意名字,但是必须用 .d.ts 结尾) 我这里就起了个 axios,注意必须有declare

declare module "MyCustom" {
  export interface GlobalInterface {
    get: (url: string) => string;
    post: (url: string, data: any) => string;
  }
}

使用

  • src/demo/index.ts
import { GlobalInterface } from "MyCustom";
let GlobalAxios: GlobalInterface;

GlobalAxios = {
  get: (url: string) => {
    console.log(url);
    return "GET response";
  },
  post: (url: string, data: any) => {
    console.log(url);
    return "POST response";
  },
};

GlobalAxios.get("https://api.example.com/data");
GlobalAxios.post("https://api.example.com/data", { key: "value" });

配置文件

  • tsconfig.json
{
  "compilerOptions": {
    /* 语言与环境 */
    "target": "ES2020", // 编译后的 JS 版本 (ES2020 比较现代)
    "module": "commonjs", // 模块系统 (Node.js 项目通常用 commonjs)
    "lib": ["ES2020"], // 引入的库定义

    /* 输出配置 */
    "outDir": "./dist", // 编译后的 JS 文件存放目录
    "rootDir": "./src", // 源代码 (.ts 文件) 的根目录
    "removeComments": true, // 编译时删除注释
    "noEmitOnError": true, // 报错时不生成编译文件

    /* 类型检查 (严格模式) - 建议开启,能帮你找错 */
    "strict": true, // 启用所有严格类型检查选项
    "esModuleInterop": true, // 允许 import 导入 CommonJS 模块
    "skipLibCheck": true, // 跳过对库文件的类型检查 (加快编译速度)
    "forceConsistentCasingInFileNames": true // 强制文件名大小写一致
  },
  "include": ["src/**/*"], // 只编译 src 目录下的文件
  "exclude": ["node_modules"] // 排除 node_modules 目录
}
0
博主关闭了当前页面的评论