当前位置: 首页 > 知识库问答 >
问题:

javascript - 如果实现可以让 typescript 不报错误?

慕容宏毅
2023-07-23
type A = {  type: 'decimal',  value: number[]}type B = {  type: 'hex',  value: string[]}const range: A | B = {   value: [0, 127],   type: 'decimal'}function transform(range: A | B) {  if (range.type === 'hex') {     range.type = 'decimal'     range.value = [parseInt(range.value[0], 16), parseInt(range.value[1], 16)];   }} 

transform 函数的作用是如果发现类型是 16 进制的,会把 value 转化为 10 进制的。上面的实现会让 typescript 报错,如何更好地实现 transform 函数让 typescript 不报错

共有1个答案

居乐池
2023-07-23
type A = {  type: 'decimal',  value: number[]}type B = {  type: 'hex',  value: string[]}const range: A | B = {   value: [0, 127],   type: 'decimal'}function transform(range: A | B) {  if (range.type === 'hex') {    Object.assign({ type: 'decimal', value: [parseInt(range.value[0], 16), parseInt(range.value[1], 16)] })   }} 
 类似资料:
  • 我很难协调以下文件中的内容: 当我尝试编译它时,我得到以下错误消息: 这很好,所以这意味着我应该能够通过明确指定财产权的对象类型来绕过这个问题? 除了现在的问题之外,当我使用编译时,我会收到以下错误消息: 似乎不管我做什么,我都会输,因为如果我小心界面上的类型规格并拼出所有内容,那么我就不能将实现专门化为只有1种类型。问题是有文件正是这样做的,如果我想让编译器找到所有的类型,因为我想尽可能显式,我

  • js 代码如下 报错日志: ReferenceError: escodegen is not defined

  • 背景: 在vue3+ts+vite项目中: vue文件:import.meta.env代码能正常访问 ts文件:import.meta.env文件有编译报错 尝试1: 在tsconfig.json中添加"types": [ "vite/client" ]

  • vue2 如何实现上面的这种表格样式,点击对于单元格的时候可以进行编辑,可以添加一行或者删除其中的一行,或者是移动当前的某一行,导出,保存等操作 有没有第三方的库,或者是提供一个思路也可以,麻烦各位大佬了

  • 本文向大家介绍JavaScript实现瀑布流以及加载效果,包括了JavaScript实现瀑布流以及加载效果的使用技巧和注意事项,需要的朋友参考一下 一、瀑布流是个啥?   瀑布流,是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。   最早采用瀑布流布局的网站是Pinterest,逐渐在国内流行开来,比如我们熟知的百度图

  • 本文向大家介绍Rust 如果让/而让,包括了Rust 如果让/而让的使用技巧和注意事项,需要的朋友参考一下 示例 if let 组合模式match和if语句,并允许进行简短的非详尽匹配。 这等效于: 这些块也可以具有else语句。 此块等效于: while let 组合模式匹配和while循环。 打印H+e+l+l+o+,+ +w+o+r+l+d+!+。 等效于使用loop {}和match语句: