【TS学习】(2)typescript数组类型中Array可以小写吗,其他类型呢?

在 TypeScript 中,类型名称的大小写非常重要,因为 TypeScript 是区分大小写的语言。

1. Array 类型:可以小写吗?

(1) Array<T>

  • Array<T> 是 TypeScript 中的泛型类型,用于表示数组。
  • Array 必须大写,因为它是 TypeScript 内置的全局类型。
示例
let numbers: Array<number> = [1, 2, 3]; // 正确
let strings: Array<string> = ["a", "b", "c"]; // 正确

(2) number[](小写形式)

  • TypeScript 提供了一种更简洁的语法来表示数组类型,即使用 T[] 的形式。
  • 这是 Array<T> 的等价形式,推荐在大多数情况下使用。
示例
let numbers: number[] = [1, 2, 3]; // 正确
let strings: string[] = ["a", "b", "c"]; // 正确

总结

  • Array<T>T[] 是等价的,功能完全相同。
  • 推荐使用 T[],因为它更简洁且更符合惯用法。

2. 其他类型的大小写区别

TypeScript 中的类型名称分为以下几类:

(1) 内置基本类型

这些类型是 TypeScript 的关键字,必须使用小写:

  • string
  • number
  • boolean
  • null
  • undefined
  • symbol
  • bigint
  • void
  • never
  • any
  • unknown
示例
let name: string = "Alice"; // 正确
let age: number = 30; // 正确
let isEnabled: boolean = true; // 正确

注意:如果使用大写(如 StringNumber),它们实际上是指 JavaScript 的包装对象类型(String, Number 等),而不是 TypeScript 的原始类型。

错误示例
let name: String = "Alice"; // 不推荐,这是 JavaScript 的包装对象类型
let age: Number = 30; // 不推荐,这是 JavaScript 的包装对象类型

(2) 接口和类型别名

接口(interface)和类型别名(type)通常是用户定义的类型,命名时通常使用 PascalCase(首字母大写)。

示例
interface User {
    name: string;
    age: number;
}

type Point = {
    x: number;
    y: number;
};

let user: User = { name: "Alice", age: 30 }; // 正确
let point: Point = { x: 10, y: 20 }; // 正确

(3)

类(class)也是用户定义的类型,命名时通常使用 PascalCase。

示例
class Person {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }
}

let person: Person = new Person("Alice", 30); // 正确

(4) 联合类型和交叉类型

联合类型(|)和交叉类型(&)可以组合多个类型,大小写取决于所使用的具体类型。

示例
let id: string | number = 123; // 联合类型
let coordinates: { x: number } & { y: number } = { x: 10, y: 20 }; // 交叉类型

(5) 内置高级类型

一些内置的高级类型(如 PromiseReadonlyPartial 等)必须大写,因为它们是 TypeScript 的构造器类型或工具类型。

示例
let promise: Promise<number> = Promise.resolve(42); // 正确
let readonlyUser: Readonly<User> = { name: "Alice", age: 30 }; // 正确

3. 为什么大小写重要?

(1) 区分原始类型和包装对象类型

  • 小写的 string 是 TypeScript 的原始类型。
  • 大写的 String 是 JavaScript 的包装对象类型。
区别
let str: string = "hello"; // 原始类型
let objStr: String = new String("hello"); // 包装对象类型

console.log(typeof str); // 输出 "string"
console.log(typeof objStr); // 输出 "object"

推荐:尽量使用小写的原始类型(如 stringnumber),避免使用包装对象类型(如 StringNumber)。

(2) 遵循命名约定

  • 使用 PascalCase 定义接口、类型别名和类,便于区分自定义类型和内置类型。
  • 使用小写表示内置的基本类型,保持一致性。

4. 总结

  • Array<T>T[]
    • Array<T> 必须大写。
    • T[] 是小写形式,推荐使用。
  • 内置基本类型:必须小写(如 stringnumber)。
  • 接口和类型别名:推荐使用 PascalCase(如 User, Point)。
  • :推荐使用 PascalCase(如 Person)。
  • 高级类型:必须大写(如 PromiseReadonly)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值