TypeScript在JavaScript的基础上增加哪些内容?前端会用到哪些知识点?

目录

1.静态类型:

2.接口 (Interface):

3.枚举(Enum):

4. 元组 (Tuple):

5.多种类型:

(1)类型别名 (Type Alias):

(2)联合类型 (Union Types):

(3)交叉类型 (Intersection Types):

6.泛型 (Generics):

7.非空断言操作符 (!):

8.可选链操作符 (?.):

9.空值合并操作符 (??):


1.静态类型:

在 JavaScript 中变量是动态类型的,而 TypeScript 提供了静态类型检查,能够在编译时发现潜在的类型错误。

let age: number = 25;  // 显式声明类型
let name: string = "Alice";  // 字符串类型
let isActive: boolean = true;  // 布尔类型

2.接口 (Interface):

用于定义对象的结构,便于代码的规范化。

interface User {
  id: number;
  name: string;
  email?: string;  // 可选属性
}

let user: User = {
  id: 1,
  name: "John Doe",
};

3.枚举(Enum):

枚举是一种用于定义一组常量的类型。

enum Direction {
  Up,
  Down,
  Left,
  Right,
}

let dir: Direction = Direction.Up;
console.log(dir); // 输出: 0

4. 元组 (Tuple):

元组允许定义一个固定长度和类型的数组。

let tuple: [string, number] = ["Age", 25];

5.多种类型:

(1)类型别名 (Type Alias):

类型别名可以为复杂类型起一个别名。

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

let point: Point = { x: 10, y: 20 };

(2)联合类型 (Union Types):

变量可以有多种类型。

let id: number | string;
id = 123;
id = "abc";

(3)交叉类型 (Intersection Types):

组合多个类型为一个类型。

type A = { name: string };
type B = { age: number };

type C = A & B;

let person: C = { name: "Alice", age: 30 };

6.泛型 (Generics):

使函数或类能够适应多种类型。

function add(a: number, b: number): number {
  return a + b;
}

let result = identity<number>(10);

7.非空断言操作符 (!):

告诉编译器变量一定有值。

let name!: string;
initialize();
console.log(name.toUpperCase());

function initialize() {
  name = "Alice";
}

8.可选链操作符 (?.):

用于处理深层嵌套对象时避免空引用错误

let user = {
  address: {
    street: "Main St",
  },
};

console.log(user?.address?.street);  // 输出: "Main St"
console.log(user?.contact?.phone);  // 输出: undefined

9.空值合并操作符 (??):

如果变量为 nullundefined,返回默认值。

let name: string | null = null;
console.log(name ?? "Default Name");  // 输出: "Default Name"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

记得开心一点嘛

您的打赏是对我最大的鼓励与期待

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

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

打赏作者

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

抵扣说明:

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

余额充值