TS 入门(二):Typescript类型与类型注解

前言

在本章中,我们将深入探讨 TypeScript 的基础类型和类型注解。理解这些概念对于有效地使用 TypeScript 是非常重要的。

回顾

在上一章中,我们介绍了如何安装和配置 TypeScript,了解了 tsconfig.json 文件中的各种配置选项,并编写了第一个 TypeScript 文件。在这篇文章中,我们将通过具体的代码示例,深入了解 TypeScript 的基础类型和变量声明。


在这里插入图片描述

正文开始如果觉得文章对您有帮助,请帮我三连+订阅,谢谢💖💖💖


1. 基本类型

数字类型 (number)

number 类型用于表示数值,可以是整数或浮点数。

let age: number = 25
let height: number = 1.75
字符串类型 (string)

string 类型用于表示文本数据。

let name: string = '张三'
let greeting: string = '欢迎学习 TypeScript!'
布尔类型 (boolean)

boolean 类型用于表示逻辑值,只能是 truefalse

let isStudent: boolean = true
let isAdmin: boolean = false
空值和未定义 (nullundefined)

nullundefined 类型用于表示空值或未定义的值。

let data: null = null
let status: undefined = undefined
任意类型 (any)

any 类型可以表示任意类型的值,编译时可以忽略类型检查。

let value: any = 42
value = '字符串'
value = true
unknown 类型
  • 描述: unknown 类型表示未知类型的值。与 any 类型不同,使用 unknown 类型的变量需要进行类型检查或类型断言才能操作其值。
  • 特性:
    • 类似于 any,可以表示任意类型的值。
    • any 不同的是,使用 unknown 类型的值必须在使用之前进行类型检查或类型断言,以确保类型安全性。
    • 更适合用于不清楚具体类型的情况,例如从动态内容或外部库中获取的值。
let userInput: unknown
let userName: string

userInput = '张三'
userInput = 42

// 需要进行类型检查或类型断言
if (typeof userInput === 'string') {
  userName = userInput // 正确
}

// 类型断言
userName = userInput as string // 正确,但需要确保 userInput 是 string 类型

// 以下操作将导致编译时错误,因为unknown不能直接赋值给字符串
// userName = userInput; // 错误,不能将类型“unknown”分配给类型“string”
any 与 unkown 区别
  • 使用 any 类型时,放弃了 TypeScript 的类型检查机制,而 unknown 类型则要求在使用时进行类型检查或类型断言,以确保代码的类型安全性。
  • 一般来说,应该尽量避免使用 any 类型,因为它会减弱 TypeScript 的类型优势,而 unknown 类型则更适合在需要时进行临时类型推断或处理未知类型的情况。

2. 数组和元组类型

数组类型

数组类型允许你表示一个由特定类型元素组成的数组。

let numbers: number[] = [1, 2, 3, 4, 5]
let names: string[] = ['张三', '李四', '王五']
元组类型

元组类型允许你表示一个已知数量和类型的数组。

let userInfo: [string, number] = ['张三', 25]

3. 枚举类型

枚举类型允许你定义一组命名的常量,默认值是从 0 开始,也可以自定义起始值

enum Direction {
  Up = 1, // 默认是从0 开始
  Down,
  Left,
  Right,
}

let userDirection: Direction = Direction.Up
console.log(userDirection) // 输出: 1 (Up 对应的枚举值)

4. 类型注解示例

指定变量类型

使用类型注解可以明确指定变量的类型。

let age: number = 25
let name: string = '李四'
let isActive: boolean = true
函数参数和返回值类型注解
function sum(a: number, b: number): number {
  return a + b
}

let result: number = sum(10, 20) // 正确
// let error: number = sum("10", "20"); // 错误,类型不匹配
类型推断

TypeScript 可以根据变量的初始值推断其类型。

let inferredAge = 25 // 推断为 number 类型
let inferredName = '王五' // 推断为 string 类型
let inferredIsActive = true // 推断为 boolean 类型

结语

通过本章的学习,你应该对 TypeScript 的基础类型和类型注解有了更深入的理解。在下一章中,我们将继续探讨 TypeScript 中更复杂的函数类型、对象类型以及类型推断和上下文类型等内容。务必掌握好每个概念,它们将为你后续学习 TypeScript 提供坚实的基础。

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ziyu_jia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值