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

【TypeScript】解决字面量类型推断错误的四种方式

解决字面量类型推断错误的四种方式

  • 方式一:对象属性使用类型断言
  • 方式二:传参使用类型断言
  • 方式三:对象使用类型断言
  • 方式四:对象属性使用变量,变量使用字面量类型
  • 参考

declare function handleRequest(url: string, method: "GET" | "POST"): void;const req = { url: "https://www.baidu.com", method: "GET" }handleRequest(req.url, req.method);

报错如下
在这里插入图片描述

方式一:对象属性使用类型断言

declare function handleRequest(url: string, method: "GET" | "POST"): void;const req = { url: "https://www.baidu.com", method: "GET" as "GET" };handleRequest(req.url, req.method);

方式二:传参使用类型断言

declare function handleRequest(url: string, method: "GET" | "POST"): void;const req = { url: "https://www.baidu.com", method: "GET" };handleRequest(req.url, req.method as "GET");

方式三:对象使用类型断言

declare function handleRequest(url: string, method: "GET" | "POST"): void;const req = { url: "https://www.baidu.com", method: "GET" } as const;handleRequest(req.url, req.method);

方式四:对象属性使用变量,变量使用字面量类型

declare function handleRequest(url: string, method: "GET" | "POST"): void;const method: "GET" | "POST" = "GET";const req = { url: "https://www.baidu.com", method };handleRequest(req.url, req.method);

参考

literal-inference
unit-types

相关文章:

  • OM6626一款低功耗蓝牙芯片SOC芯片 -电子价签蓝牙芯片
  • 高阶数据结构 <红黑树>
  • Python学习:函数
  • 【线段树二分】第十三届蓝桥杯省赛C++ A组/研究生组 Python 研究生组《扫描游戏》(C++)
  • 【JVM】JVM简介
  • 【C/C++】奇偶位互换
  • mysql安装及操作
  • SpringMVC基础Controller
  • 鸿蒙(HarmonyOS)Navigation如何实现多场景UI适配?
  • 请简单介绍一下Shiro框架是什么?Shiro在Java安全领域的主要作用是什么?Shiro主要提供了哪些安全功能?
  • MC0248 密码判断器(判断强弱密码)
  • C/C++ ② —— C++11智能指针
  • 『Apisix进阶篇』动态负载均衡:APISIX的实战演练与策略应用
  • MySQL面试题--MySQL内部技术架构
  • SVM回归预测
  • Date型的使用
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • golang 发送GET和POST示例
  • JAVA SE 6 GC调优笔记
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • React Transition Group -- Transition 组件
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue2.0项目引入element-ui
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 那些年我们用过的显示性能指标
  • 我的zsh配置, 2019最新方案
  • 我看到的前端
  • 中文输入法与React文本输入框的问题与解决方案
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • (BFS)hdoj2377-Bus Pass
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)换源+apt-get基础配置+搜狗拼音
  • (翻译)terry crowley: 写给程序员
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (七)c52学习之旅-中断
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一) storm的集群安装与配置
  • (一)80c52学习之旅-起始篇
  • (译)计算距离、方位和更多经纬度之间的点
  • (正则)提取页面里的img标签
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .“空心村”成因分析及解决对策122344
  • .NET MVC 验证码
  • .Net Web项目创建比较不错的参考文章
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET开发者必备的11款免费工具
  • .net生成的类,跨工程调用显示注释
  • .NET中的Exception处理(C#)
  • .project文件
  • ??如何把JavaScript脚本中的参数传到java代码段中