当前位置: 首页 > news >正文

TypeScript对不同种变量怎么声明不同类型

在 TypeScript 中,声明不同类型的变量主要依赖于其类型系统。TypeScript 支持多种基本类型和复杂类型,并允许您明确地指定每个变量的类型。以下是一些常见的类型声明方式:

基本数据类型

  1. 布尔值(boolean)

    let isDone: boolean = false;
    
  2. 数字(number)

    let decimal: number = 6;
    let hex: number = 0xf00d;
    let binary: number = 0b1010;
    let octal: number = 0o744;
    
  3. 字符串(string)

    let color: string = "blue";
    color = 'red';
    
  4. 数组(Array)

    • 使用 type[] 方式:
      let list: number[] = [1, 2, 3];
      
    • 或者使用泛型 Array 类型:
      let list: Array<number> = [1, 2, 3];
      
  5. 元组(Tuple)
    允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

    let x: [string, number];
    x = ["hello", 10]; // 正确
    
  6. 枚举(Enum)
    提供了更友好的名称来描述一组数值。

    enum Color {Red, Green, Blue}
    let c: Color = Color.Green;
    
  7. 任意值(Any)
    当不希望对变量进行类型检查时,可以使用 any 类型。

    let notSure: any = 4;
    notSure = "maybe a string instead";
    
  8. 空值(Void)
    表示没有任何类型,通常用于函数返回值类型,表示没有返回值。

    function warnUser(): void {
        console.log("This is my warning message");
    }
    
  9. Null 和 Undefined
    分别表示 nullundefined 的类型。

    let u: undefined = undefined;
    let n: null = null;
    

复杂类型

  1. 联合类型(Union Types)
    使用 | 来分隔每个类型,允许变量是多个类型中的一个。

    let id: number | string;
    id = 10; // 可以赋值为数字
    id = "10"; // 也可以赋值为字符串
    
  2. 交叉类型(Intersection Types)
    使用 & 符号组合多个类型为一个类型,创建具有所有属性的新类型。

    interface Person {
        name: string;
    }
    interface Lifespan {
        birth: Date;
        death?: Date; // 可选属性
    }
    
    type PersonWithLifespan = Person & Lifespan;
    let person: PersonWithLifespan = {
        name: "John Doe",
        birth: new Date(1990, 6, 2)
    };
    
  3. 类型别名(Type Aliases)
    可以为类型定义一个新名字。

    type Name = string;
    type NameResolver = () => string;
    type NameOrResolver = Name | NameResolver;
    

通过这些方法,您可以灵活地在 TypeScript 中声明不同类型的变量,确保代码更加健壮和易于理解。此外,TypeScript 还支持更多高级类型操作,如泛型、映射类型等,可以根据需要进一步探索。

声明变量demo

在这里插入代码片

export enum RoleEnum {
PROJECT = '1',
NON_PROJECT = '2'
}

interface User {
  userName: string;
  userNo: string;
 }
  
interface Attendee extends User {}
interface ReviewUser {
  	roleId: number;
  	roleName: string;
}
interface MeetingData {
  attachmentIds: string[];
  attendees: Attendee[];
  reviewUsers: ReviewUser[];
  type?:RoleEnum ;
}

相关文章:

  • mongodb--用户管理
  • swift菜鸟教程13(函数)
  • Wincc脚本全部不运行
  • MySQL死锁问题深度剖析与Java解决方案
  • 解决react仿deepseek流式对话出现重复问题
  • JS String类型函数
  • 3dmax的python通过普通的摄像头动捕表情
  • 健康与好身体笔记
  • 项目学习总结001
  • 《算法笔记》3.3小节——入门模拟->图形输出
  • Android学习总结之OKHttp拦截器和缓存
  • 【leetcode hot 100 152】乘积最大子数组
  • OpenCV图像形态学详解
  • 树莓派4B配置wifi热点,可访问http协议
  • 不再卡顿!如何根据使用需求挑选合适的电脑内存?
  • ViewModel vs AndroidViewModel:核心区别与使用场景详解
  • 云服务器10M带宽实际速度能达到多少?
  • 大唐杯省赛安排来了!还有7天,该如何准备?
  • BERT、T5、ViT 和 GPT-3 架构概述及代表性应用
  • 《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第十篇:商品管理功能实现
  • 巴中哪里可以做公司网站/视频营销案例
  • 可以做微信公众号封面的网站/百度最新秒收录方法2022
  • 福州网站建设专业公司/网站建站网站
  • 什么网站可以做微官网/长春网站建设方案咨询
  • 网站建设 教案/网站模板哪家好
  • 学做美食饮品网站/国外免费舆情网站有哪些软件