首页 > 其他分享 >10、类型别名

10、类型别名

时间:2023-12-04 20:15:27浏览次数:23  
标签:10 字面 别名 字符串 类型 type string

类型别名用来给一个类型起个新名字。

类型别名

使用type创建类型别名:

type Name = string;
type NameResolver = () => string;
type NameOrResolver = Name | NameResolver;
function getName(n: NameOrResolver): Name {
    if (typeof n === 'string') {
        return n;
    } else {
        return n();
    }
}

类型别名常用于联合类型。

字符串字面量类型

字符串字面量类型用来约束取值只能是某几个字符串中的一个。

type EventNames = 'click' | 'scroll' | 'mousemove';
function handleEvent(ele: Element, event: EventNames) {
    // do something
}

handleEvent(document.getElementById('hello'), 'scroll');  // 没问题
handleEvent(document.getElementById('world'), 'dbclick'); // 报错,event 不能为 'dbclick'

使用 type 定了一个字符串字面量类型 EventNames,它只能取三种字符串中的一种。

注意,类型别名与字符串字面量类型都是使用 type 进行定义。

标签:10,字面,别名,字符串,类型,type,string
From: https://www.cnblogs.com/ewar-k/p/17875772.html

相关文章

  • 4、类型断言
    类型断言(TypeAssertion)可以用来手动指定一个值的类型。类型断言constbox=document.querySelector('.box')//<类型>数据console.log((<HTMLDivElement>box).innerHTML)//值as类型console.log((boxasHTMLDivElement).innerHTML)在tsx语法(React的jsx语法的......
  • Codeforces Beta Round 10 C
    111发现d(x)只有0-9的值我们可以把按d(x)来分类发现要只计算我们就可以枚举d(C)d(a)d(b)贡献就是这三个任选要是有前面限制呢我打了一下表发现要是AB=C那么肯定满足后面这样我们就只用枚举C然后算他有多少对因子即可然后发现C是1-n连续的可以直接枚举因子A就可以快速算出有......
  • 2、数据类型
    typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了以下数据类型布尔类型(boolean)数字类型(number)字符串类型(string)数组类型(array)元组类型(tuple)任意类型(any)null和undefinedvoid类型never类型类型定义ts规定定......
  • 深入理解泛型(经典详解):<T> T 和 T的使用以及public <E> List<E> get()泛型方法详解、类型擦
     一、为什么要使用泛型?    泛型俗称“标签”,使用<E>表示。泛型就是在允许定义类,接口时通过一个标识表示某个属性的类型或者是某个方法的返回值或者是参数类型,参数类型在具体使用的时候确定,在使用之前对类型进行检查。     泛型意味着编写的代码可以被很多不同......
  • Codeforces Round 910 (Div. 2)
    CodeforcesRound910(Div.2)A.MilicaandStringwa麻了,,,不知道自己在干什么#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'usingnamespacestd;voidsolve(){intk,n;strings;cin>>n>>k>>s;in......
  • 可变与不可变数据类型
    可变与不可变数据类型1.可变类型对于可变类型(如列表、字典等),在函数中修改参数会影响原始对象。1.1字典dic={'name':'serein','sex':'male','age':18}print(id(dic))#1499123688064#修改字典中的值dic['age']=19print(dic)#{'n......
  • 【python基础之可变和不可变数据类型】---python之栈的介绍
    【二】栈【0】引入https://www.hello-algo.com/chapter_stack_and_queue/栈如同叠猫猫,而队列就像猫猫排队。两者分别代表着先入后出和先入先出的逻辑关系。【1】栈的介绍「栈stack」是一种遵循先入后出的逻辑的线性数据结构。我们可以将栈类比为桌面上的一摞盘......
  • 【python基础之可变和不可变数据类型】--- python之堆的介绍
    【一】堆堆--简介:一种基于树的数据结构堆是满足堆特性的完全二叉树,即树中每个节点的值大于或等于其子节点的值。有两种类型的堆:1.最大堆:在最大堆中,每个节点的值都大于或等于其子节点的值,并且根节点在树中具有最大值。2.最小堆:在最小堆中,每个节点的值都小于或等于其子......
  • 【python基础之可变和不可变数据类型】--- python堆栈的相关应用
    【一】用代码实现堆和栈【1】堆#堆的操作是先进先出(FIFO)list_queue=[]foriinrange(0,5):print(f'{i}已入堆(队列)')list_queue.append(i)print('------入堆完毕--------')whilelist_queue:print(f'{list_queue.pop(0)}已出堆(队列)')print('-......
  • 洛谷 P1044 [NOIP2003 普及组] 栈 题解
    洛谷P1044[NOIP2003普及组]栈题解Sol本题通过分析可得:假设现在进行\(12\)次操作,我们把push认为是在地图上向右走,pop向上走,那么其中一个合法的步骤可以是(\(p1\)代表push,\(p2\)代表pop):\(p1,p1,p2,p1,p2,p2,p1,p1,p2,p2,p1,p2\)。而且我们发现,他最终会......