ts学习(6)

简介: ts学习(6)

1.never类型可以做穷尽性检查。nerver类型表示一个不存在的状态,never类型可以分配给每个类型,但是没有任何类型可以分配给never,除了never本身。

type Animal = 'lion' | 'cat'
function checkAnimal(animal:Animal){
   
  swicth(animal){
   
    case 'lion':
      return xxx;
    case 'cat':
      return xxx;
    default:
      const other:never = animal;
      return other;
    }
}

2.函数的类型描述
2.1函数类型表达式

fn:(a:string) => void

//例子
type Greetfunction =(s:string)=>void
function greeter(fn:Greetfunction){
   
  fn('hello world')
}

function printToConsole(s:string):void{
   
  console.log(s);
}

greeter(printToConsole);

2.2调用签名
在js中函数除了可调用之外,函数还可以有属性。但是函数类型表达式的语法无法声明属性,如果想用属性来描述可调用的东西,可以在对象中,写一个调用签名。


type Describablefunction={
   
  description:string;
  (someArg:number):boolean
}

function doSomething(fn:Describablefunction){
   
  console.log(fn.description+'returned'+fn(6));
}

function fn1(n:number):boolean{
   
  return !!n;
}
doSomething(fn1);

2.3构造签名

class Ctor{
   
  s:string;
  contructor(s:string){
   
    this.s=s;
  }
}
type SomeContructor={
   
  new (s:string):Ctor
}

function fn(ctor:SomeContructor){
   
  return new ctor('hello');
}
const f =fn(Ctor);
console.log(f.s);

2.4调用签名和构造签名结合使用

interface CallOrContructor {
   
    new (s:string):Date;
    (n?:number):string;
}

function fn(date:CallOrContructor){
   
  const d = new date('2023-03-29');
  const n = date();
}
相关文章
|
5月前
|
人工智能 运维 Serverless
函数计算 × MSE Nacos : 轻松托管你的 MCP Server
本文将通过一个具体案例,演示如何基于 MCP Python SDK 开发一个标准的 MCP Server,并将其部署至函数计算。在不修改任何业务代码的前提下,通过控制台简单配置,即可实现该服务自动注册至 MSE Nacos 企业版,并支持后续的动态更新与统一管理。
767 76
|
5月前
|
人工智能 文字识别 并行计算
牛逼,DeepSeek-OCR 最新免费,引爆文档处理效率的黑科技模型
小华同学推荐:DeepSeek-OCR,由DeepSeek-AI开源的高效OCR工具,支持视觉压缩编码、结构化输出(如Markdown),可批量处理海量文档,适配PDF/图片,兼容vLLM,助力企业级文档自动化。
892 3
|
5月前
|
人工智能 安全 Java
分布式 Multi Agent 安全高可用探索与实践
在人工智能加速发展的今天,AI Agent 正在成为推动“人工智能+”战略落地的核心引擎。无论是技术趋势还是政策导向,都预示着一场深刻的变革正在发生。如果你也在探索 Agent 的应用场景,欢迎关注 AgentScope 项目,或尝试使用阿里云 MSE + Higress + Nacos 构建属于你的 AI 原生应用。一起,走进智能体的新世界。
1201 76
|
9月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
466 61
|
5月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
441 10
|
5月前
|
负载均衡 算法 Java
【SpringCloud(3)】Ribbon负载均衡:IRule原理轮询算法;LB负载均衡;loadbalancer和IRule组件;Ribbon和Ngin负载均衡的区别
Spring Cloud Ribbon 是基于Netflix Ribbon实现的一套客户端的负载均衡工具 简单地说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时、重试等。就在在配置文件中列出Load Balancer(LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机链接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法
544 136
|
5月前
|
存储 API 数据库
按图搜索1688商品的API接口
本文介绍如何利用阿里云ImageSearch服务实现1688商品的按图搜索功能。通过提取图像特征向量并计算相似度,结合Flask搭建API接口,可快速构建基于图片的商品检索系统,提升电商用户体验。
529 0
|
5月前
ts学习(5)
ts学习(5)
259 138
|
5月前
|
JSON NoSQL 测试技术
从手动到全自动:我们如何用Dify重构了API回归测试流程
本文分享团队如何借助Dify工作流平台,将耗时3天的手动API回归测试升级为3小时完成的全自动流程,实现测试效率与质量双提升,推动测试从成本中心向价值创造转型。
|
5月前
|
缓存 监控 Cloud Native
《3D端游云原生协作任务数据一致性优化实战》
本文记录古风3D端游“长安工坊”协作任务的云原生数据一致性优化过程。该玩法测试中出现材料库存不同步、奖励发放异常等问题,核心因云原生环境下容器本地缓存未同步、缺乏分布式锁致数据脏写。团队搭建分布式数据中台,按实时性将数据分层管控,优化中台分片与缓存预热解决响应延迟,细化锁粒度与重试机制降低竞争失败率,还构建全链路监控体系。
117 0

热门文章

最新文章