TypeScript

简介: TypeScript

TypeScript 编程

1.数组提取联合类型


const arr = ['v1','v2'] as const;

// const arr = <const>['v1','v2'] ;  网上看的写法,版本不支持?

type A  = (typeof arr)[number] ; // 'v1' | 'v2'

尝试一下

2.数组对象,提取key或则value 作为联合类型

 const PORT_MAP = {
   
    'MYSQL':'3306',
    'HIVE':'10000',
    'HDFS' :'8020',
    'YARN' : '8032',
    'KAFKA' : ''
  } as const
  type PORT_MAP_TYPE = typeof PORT_MAP
  // 提取 key 作为联合类型
  type portMapType = keyof PORT_MAP_TYPE
  // 提取 val 作为联合类型
  // type portMapType = PORT_MAP_TYPE[keyof PORT_MAP_TYPE]

  /**
   * @environment: vue3.2 watch 语法。
   * @description: 使用场景:下拉框切换类型,这里是datasourceType,类型变化后 默认值切换。
   */
  watch(
    () => proForm.datasourceType,
    (datasourceType, preDatasourceType) => {
   
        proForm.port = PORT_MAP[datasourceType as portMapType]
    }
  )

尝试一下

  1. 把 one_two_three 写法转为 驼峰 oneTwoThree

    这里用的新知识
    extends 用来判断,这里结合递归处理;
    Capitalize 把首字母转为大写;
    intef 提取字符串;


type Separator = '_'

type SnakeToCamel<Str extends string , Acc extends string = ''> = 

  (Str extends `${infer HeadStr}${Separator}${
     infer TailStr}`
    ?(Acc extends '' 
      // This is a first call ,because  Acc is '' 
      // 第一个字母不用变成大写
      ? SnakeToCamel<TailStr,`${Acc}${HeadStr}`> 

      : SnakeToCamel<TailStr, `${Acc}${Capitalize<HeadStr>}`>)

    :`${Acc}${Capitalize<Str>}`
  ) 

type Res = SnakeToCamel<'one_two_three'>

尝试一下

相关文章
|
1月前
|
JavaScript 前端开发
TypeScript二
JavaScript Number对象包含多种方法,如`toExponential()`将数值转化为指数形式,`toFixed()`保留指定位数的小数,`toLocaleString()`按本地格式显示数字,`toPrecision()`格式化数字到指定长度,`toString()`以指定基数表示数字,而`valueOf()`返回原始数值。此外,示例中还展示了Date对象的格式化方法。对于String对象,有`constructor`返回创建对象的函数,`length`获取字符串长度,`prototype`用于扩展对象,以及一系列如`charAt()`、`indexOf()
|
4月前
|
JavaScript 前端开发 Java
TypeScript
TypeScript是JavaScript的一个超集,简称ts,ts是能够完全兼容js的ts是一门静态类型的语言,js是动态类型的语言
32 0
|
9月前
|
JavaScript
【TypeScript理解】
【TypeScript理解】
|
11月前
|
JavaScript 前端开发 安全
快速了解 TypeScript
快速了解 TypeScript
|
JavaScript 前端开发 数据库
TypeScript 期中考试现在开始
相信这段时间来,对 TypeScript 感兴趣的小伙伴们已经把这个神器给系统的学习了一遍了吧。如果计划开始学习但是还没有开始,或者没有找到资料的同学,可以看下我在之前文章中 前端进阶指南[1] 找一下 TypeScript 部分的教程,自行学习。
|
Rust JavaScript 前端开发
C# 是 TypeScript 的最佳替补?
C# 是 TypeScript 的最佳替补?
205 0
C# 是 TypeScript 的最佳替补?
|
JavaScript 前端开发 编译器
【TypeScript】一文带你了解什么是TypeScript
【TypeScript】一文带你了解什么是TypeScript
【TypeScript】一文带你了解什么是TypeScript