TS 基本类型

TS 基本类型

TS 基本类型


  • 类型声明

    • 类型声明是 TS 非常重要的一个特点。

    • 通过类型声明可以指定 TS 中变量(参数、形参)的类型。

    • 指定类型后,当为变量赋值时,TS 编译器会自动检查值是否符合类型声明,符合则赋值,否则报错。

    • 简而言之,类型声明给了变量设置了类型,使得变量只能存储某种类型的值。

    • 语法:

      // let 变量: 类型;
      let score;
      
      // let 变量: 类型 = 值;
      let score: number = 60;
      
      // function fn(参数: 类型,参数: 类型): 类型{
      //   ...
      // }
      function sum(a: number, b: number): number {
        return a + b;
      }
      
    • 注意:当对变量的声明和赋值是同时进行的,TS 编译器会自动判断变量的类型。所以当变量的声明和赋值是同时进行的,可以省略类型声明。

  • 类型:

    类型例子描述
    number1,-33,2.5任意数字
    string“hi”,“hi”,hi任意字符串
    booleantrue,false布尔值 true 或 false
    字面量其本身限制变量的值就是该字面量的值
    any*任意类型
    unknow*类型安全的 any
    void空值(undefined)没有值(或 undefined)
    never没有值不能是任何值
    object{name: ‘孙悟空’}任意的 JS 对象
    array[1,2,3]任意 JS 数组
    tuple[4,5]元素,TS 新增类型,固定长度数组
    enumenum{A,B}枚举,TS 新增类型`
  • **联合类型:**可以使用 | 来连接多个类型。

    let b: "male" | "female"
    b = male;
    b = female;
    
    let c: boolean | string
    b = true;
    b = "hello";
    
    // 类型断言
    let e: unknow;
    e = 10;
    e = "hello";
    
    let s: string;
    e = 'hello';
    
    if(typeof e === "string"){	// 类型判断以后可以赋值
      s = e;
    } 
    
    s = e as string;
    s = <string>e;
    
  • object

    let a: object;
    a = {};
    a = function () {
    };
    
    // {} 用来指定对象中可以包含哪些属性
    // 语法: {属性名:属性值,属性名:属性值}
    // 在属性名后边加上 ? ,表示属性是可选的。
    let b: {name:string,age?:number}
    b = {name: "孙悟空",age: 18}
    
    // [propName: string]: any 表示任意属性都是可选的
    let c: {name:string,[propName:string]:any}
    c = {name:"猪八戒",age: 19}
    
  • array

    let a: string[];
    
    let b: number[];
    
    let c: Array<number>;
    
  • 类型别名

    type myType = 1 | 2 | 3 | 4 | 5;
    let a: myType;
    let b: myType;
    let c: myType;
    
<think>首先,用户的问题是关于TypeScript基本数据类型。我需要根据系统级指令来构建回答。 系统级指令要点: - 所有行内数学表达式使用 $...$(但这里可能不涉及数学,所以忽略)。 - 独立公式使用 $$...$$(同上,可能不适用)。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,如[^1]。 - 回答结构清晰,逐步解决问题。 用户提供的引用: - [^1]:TypeScript是JavaScript的超集,增加静态类型系统,基础数据类型是核心。 - [^2]:详细列表TypeScript的基础类型,包括string, number, boolean, array, tuple, enum, any, void, null, undefined, never, object, union, unknown。 - [^3]:TypeScript的背景,由微软开发,是JavaScript超集,添加静态类型和面向对象编程。 - [^4]:number类型包括整数和浮点数。 - [^5]:所有数字都是浮点数,支持多种进制。 用户问题:我想了解TypeScriptTS)的基本数据类型 我的回答需要: 1. **结构清晰**:逐步介绍TypeScript的基础数据类型。 2. **参考引用**:在相关内容末尾添加引用标识。 3. **使用中文**。 4. **生成相关问题**:在最后添加相关问题部分。 5. **保证真实可靠**:基于提供的引用,避免错误。 大纲回答: - **引言**:简要介绍TypeScript和其类型系统的重要性。 - **主体**:详细列出每个基础数据类型,解释每个类型的含义和示例。 - **结论**:总结数据类型的重要性。 - **相关问题**:生成3-5个相关问题。 引用使用: - 在引用来源的地方添加[^1], [^2]等。例如,当提到基础数据类型列表时,引用[^2];当提到TypeScript背景时,引用[^3]。 数据类型列表(基于引用[^2]): 1. string:文本数据。 2. number:所有数字,整数和浮点数。 3. boolean:布尔值。 4. array:数组。 5. tuple:元组。 6. enum:枚举。 7. any:任意类型。 8. void:无返回值。 9. null:空值。 10. undefined:未定义。 11. never:不会有返回值。 12. object:非原始类型。 13. union:联合类型。 14. unknown:不确定类型。 我需要确保示例代码清晰,用正确的语法。引用中提到了一些示例,如引用[^2]和[^4]。 回答结构: 1. **开头**:解释TypeScript是什么及其类型系统的重要性(引用[^1]和[^3])。 2. **列表数据类型**:逐个数据类型介绍,给出定义和示例代码。 3. **结尾**:简要总结。 4. **相关问题**:添加相关问题部分。 生成相关问题(§§相关问题§§): 基于主题,可以问: 1. TypeScript类型系统的好处是什么? 2. 如何定义和使用枚举类型? 3. TypeScript与JavaScript在数据类型上的主要区别? 4. 如何处理null和undefined的类型检查? 5. TypeScript类型推断机制? 确保回答真实: - 基于引用内容,不要添加外部知识。引用内容有限,所以我只能使用提供的引用。 最终回答: - 使用Markdown格式,代码块用```表示。 - 添加引用标识。 - 最后有相关问题。 </think>### TypeScript基本数据类型详解 TypeScript (TS) 是 JavaScript 的超集,它通过添加静态类型系统,显著提升了代码的可维护性和类型安全。基础数据类型TypeScript 类型系统的核心组成部分,理解它们对编写高质量代码至关重要[^1]。TypeScript 的数据类型包括原始类型和复杂类型,下面我将基于官方文档和核心概念,一步步介绍每个基础数据类型,并给出清晰的定义和代码示例。以下是完整的列表(基于引用内容整理): #### 1. **原始类型** - **`string`**: 表示文本数据。 ```typescript let name: string = "Alice"; // 字符串类型示例 ``` - **`number`**: 表示所有数字值,包括整数、浮点数、负数,以及二进制、八进制和十六进制字面量。所有数字在 TypeScript 中都视为浮点数[^4][^5]。 ```typescript let age: number = 30; // 整数 let pi: number = 3.14; // 浮点数 let hex: number = 0xf00d; // 十六进制 ``` - **`boolean`**: 表示布尔值 `true` 或 `false`。 ```typescript let isDone: boolean = true; ``` - **`null`**: 表示空值。 ```typescript let empty: null = null; ``` - **`undefined`**: 表示未定义的值。 ```typescript let undef: undefined = undefined; ``` #### 2. **数组和元组** - **`array`**: 表示相同类型元素的数组。 ```typescript let list: number[] = [1, 2, 3]; // 数字数组 let names: string[] = ["Alice", "Bob"]; // 字符串数组 ``` - **`tuple`**: 表示已知类型和长度的固定大小数组。 ```typescript let person: [string, number] = ["Alice", 30]; // 元组示例:第一个元素是字符串,第二个是数字 ``` #### 3. **特殊类型** - **`any`**: 任意类型,不进行类型检查。适用于动态内容,但应谨慎使用以避免类型安全问题[^2]。 ```typescript let value: any = 42; // 可以赋值为任何类型 value = "Hello"; // 无错误 ``` - **`void`**: 表示函数没有返回值。 ```typescript function log(): void { console.log("This function returns nothing"); } ``` - **`never`**: 表示函数永远不会有返回值(例如,抛出错误或无限循环)。 ```typescript function error(): never { throw new Error("Something went wrong"); } ``` - **`unknown`**: 不确定类型,需要类型检查后才能使用。比 `any` 更安全,因为它强制类型验证。 ```typescript let value: unknown = "Hello"; if (typeof value === "string") { console.log(value.toUpperCase()); // 必须检查类型后才能操作 } ``` #### 4. **枚举和对象** - **`enum`**: 定义一组命名常量。 ```typescript enum Color { Red, Green, Blue }; // 枚举示例 let bgColor: Color = Color.Green; ``` - **`object`**: 表示非原始类型(例如对象、函数)。 ```typescript let obj: object = { name: "Alice" }; ``` #### 5. **联合类型** - **`union`**: 表示变量可以是多种类型之一。 ```typescript let id: string | number = 42; // 联合类型:字符串或数字 id = "ABC123"; // 可以切换类型 ``` ### 总结 TypeScript 的基础数据类型提供了强大的类型约束,从简单的 `string` 和 `number` 到复杂的 `union` 和 `unknown`,它们有助于在开发阶段捕获错误,提升代码健壮性。TypeScript 作为 JavaScript 的超集,其类型系统是静态可选的,允许开发者逐步引入类型检查[^1][^3]。掌握这些类型是高效使用 TypeScript 的第一步,它们在大型项目中尤其重要,能显著减少运行时错误。
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值