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对象是类型实例,
|
6月前
|
JavaScript
typescript Any
typescript Any
|
7月前
|
JavaScript 前端开发 开发者
TypeScript一
JavaScript开发迅速但维护成本高,适合小型项目,因其动态类型导致编辑器提示不全。TypeScript是JS超集,增加了类型系统,提高开发效率和代码质量。安装TypeScript需先安装Node.js,然后通过npm安装tsc。案例演示创建`.ts`文件,转换成`.js`并运行。TypeScript支持多种数据类型,如any、number、string等,并有严格变量声明和函数定义规则,包括函数重载和匿名函数。
|
7月前
|
存储 JavaScript 索引
TypeScript四
## 联合类型 联合类型使用`|`分隔,表示变量可为多种类型: ```c var val: string | number; val = 12; // OK val = &quot;Runoob&quot;; // OK `
|
7月前
|
JavaScript 前端开发
TypeScript二
JavaScript Number对象包含多种方法,如`toExponential()`将数值转化为指数形式,`toFixed()`保留指定位数的小数,`toLocaleString()`按本地格式显示数字,`toPrecision()`格式化数字到指定长度,`toString()`以指定基数表示数字,而`valueOf()`返回原始数值。此外,示例中还展示了Date对象的格式化方法。对于String对象,有`constructor`返回创建对象的函数,`length`获取字符串长度,`prototype`用于扩展对象,以及一系列如`charAt()`、`indexOf()
|
7月前
|
开发框架 JavaScript 前端开发
什么是TypeScript
什么是TypeScript
38 0
|
7月前
|
JavaScript 前端开发 Java
TypeScript
TypeScript是JavaScript的一个超集,简称ts,ts是能够完全兼容js的ts是一门静态类型的语言,js是动态类型的语言
61 0
|
JavaScript 前端开发 编译器
30分钟速成TypeScript
30分钟速成TypeScript
|
JavaScript
TypeScript(一)
TypeScript(一)
|
JavaScript 前端开发
初识 TypeScript 二。
初识 TypeScript 二。
初识 TypeScript 二。