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'>

尝试一下

相关文章
|
7月前
|
JavaScript 前端开发 安全
TypeScript五
TypeScript是面向对象的JavaScript超集,支持类、接口等OOP特性。类通过`class`定义,包括字段、构造函数和方法。例如,`Car`类有`engine`字段、构造函数和`disp`方法。类间可实现继承,如`Circle`继承`Shape`。TypeScript不支持多重继承,但允许多重继承链。`static`关键字定义静态成员,`instanceof`检查对象类型,访问控制修饰符(public, protected, private)管理访问权限。类能实现接口,如`AgriLoan`实现`ILoan`。 TypeScript对象是类型实例,
|
2月前
|
JavaScript 安全
TypeScript使用真的很麻烦吗?
TypeScript使用真的很麻烦吗?
30 3
|
6月前
|
JavaScript
typescript Any
typescript Any
|
7月前
|
开发框架 JavaScript 前端开发
什么是TypeScript
什么是TypeScript
38 0
|
JavaScript
【TypeScript理解】
【TypeScript理解】
|
JavaScript 前端开发 数据库
TypeScript 期中考试现在开始
相信这段时间来,对 TypeScript 感兴趣的小伙伴们已经把这个神器给系统的学习了一遍了吧。如果计划开始学习但是还没有开始,或者没有找到资料的同学,可以看下我在之前文章中 前端进阶指南[1] 找一下 TypeScript 部分的教程,自行学习。
|
JSON JavaScript 前端开发
Typescript知识总结(1)
Typescript知识总结(1)
Typescript知识总结(1)
|
JavaScript 前端开发 开发工具
TypeScript初识
TypeScript初识
151 0

热门文章

最新文章