当前位置: 首页 > news >正文

ts之 命名空间 namespace、三斜线指令、声明文件(declare 声明ts的变量函数第三方模块等 )

目录

  • ts之 命名空间 namespace
    • ts之 命名空间 namespace
    • ts之 三斜线指令 ( 引入其他.ts文件 )
      • app.ts
      • index.ts
    • ts之 声明文件 d.ts - declare
      • 01:declare声明express第三方模块
        • typings 为代码或者第三方模块 编写声明文件
        • index.ts
      • 02:declare声明 变量和函数
        • typings / app.d.ts
        • app.ts
        • index.ts

ts之 命名空间 namespace

ts之 命名空间 namespace

// namespace 命名空间
namespace A {export interface AAA {name: string;}export const arr: AAA[] = [{ name: "ppp" }];export namespace B {export const bbb = "bbb";}
}
console.log("arr", A.arr);
// 简化命名空间
import BBB = A.B;

ts之 三斜线指令 ( 引入其他.ts文件 )

  • 或者安装 声明文件 npm i @types/node -D

app.ts

namespace AAA {export const bbb = "bb";
}

index.ts

// index.ts入口文件 引入 app.ts文件
// ///<reference path="app.ts" />
// namespace AAA {
//   export const aaa = "aa";
// }
// 都可以使用 AAA.aaa AAA.bbb
// AAA.aaa
// AAA.bbb// 使用声明文件
///<reference types="node" />
// AAA.bbb

ts之 声明文件 d.ts - declare

  • 安装
    •   npm i tsc --initnpm i expressnpm i axios
      

01:declare声明express第三方模块

typings 为代码或者第三方模块 编写声明文件

declare module "express" {interface Router {get(path: string, cb?: (req: any, res: any) => void): void;}// app.use("./api", router); 定义app.use的声明文件interface App {use(path: string, router: any): void;listen(port: number, cb?: () => void);}interface Express {(): App;Router(): Router;}const express: Express;export default express;
}declare var a: boolean;
declare var add = (a: number, b: number) => number;

index.ts

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");
});// a = true; => 找不到名称“a” 在typings下的 express下声明文件了a 则不会报错了 => declare var a: boolean;
a = true;
// 在typings下的 express下声明文件了a 则不会报错了 => declare var add = (a: number, b: number) => number;
add = (a: number, b: number) => {return a + b;
};
add(1, 2);

02:declare声明 变量和函数

typings / app.d.ts

declare var b: boolean;
declare var add = (a: number, b: number) => number;
declare var sub = (a: number, b: number) => number;

app.ts

b = true;
add = (a: number, b: number) => {return a + b;
};
add(1, 2);
sub = (a: number, b: number) => {return a - b;
};
sub(1, 2);

index.ts

///<reference path="app.ts" />
http://www.lryc.cn/news/18192.html

相关文章:

  • Day898.Join语句执行流程 -MySQL实战
  • ChatGPT商业前景如何?人工智能未来会如何发展?
  • 代码随想录第十六天(347、194、195、94)
  • < elementUI组件样式及功能补全: 实现点击steps组件跳转对应步骤 >
  • 【学习笔记】互联网金融:芝麻信用分的建模过程
  • Linux C/C++或者嵌入式开发到底有没有35岁危机?
  • 国内领先的十大API接口排行
  • 【Linux】Kickstart 配置U盘自动化安装Linux系统
  • 【Spring MVC】这一篇,带你从入门到进阶
  • InstallAware Multi-Platform updated
  • Spring Batch 高级篇-多线程步骤
  • 关于iframe一些通讯的记录(可适用工作流审批)
  • JavaWeb
  • ip段192.168.1.0/24和192.168.0.0/16
  • 《爆肝整理》保姆级系列教程python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
  • 【第二章 IOC操作bean管理(XML注入其他类型属性(字面量,外部bean,内部bean,级联赋值)、XML注入集合属性)】
  • Kotlin-枚举和印章
  • _linux (TCP协议通讯流程)
  • PMP考试详解,新考纲有什么变化?
  • C++学习笔记-日期和时间
  • Nordic nRF芯片FDS模块学习
  • JVM 学习(1)—JVM 与 JMM 内存模型简单理解
  • NMS详解
  • 考出PMP证书到底有没有用?
  • 寻路库recastnavigation改造
  • pandas 一些设置随记
  • SSIM学习
  • selenium自动化测试用例需要关注的几点
  • harfbuzz 的用法
  • JSP 在线学习管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc