【TypeScript】类型声明

当我们使用TypeScript编写代码时,类型声明是非常重要的,它帮助我们定义变量、函数、类等的类型,从而提供更好的代码提示、类型检查和代码可读性。以下是关于TypeScript类型声明的详细内容:

  1. 基本类型声明
    在TypeScript中,我们可以使用以下关键字来声明基本类型:
let num: number = 42;
let str: string = "Hello";
let bool: boolean = true;
let arr: number[] = [1, 2, 3];
let tuple: [string, number] = ["hello", 5];
let obj: { name: string; age: number } = { name: "John", age: 30 };
  1. 类型别名(Type Alias)
    类型别名允许我们为复杂的类型定义一个新的名称,使代码更具可读性。
type Person = { name: string; age: number };

let john: Person = { name: "John", age: 30 };
  1. 接口(Interfaces)
    接口是一种定义对象类型的方式,用于描述对象的结构和属性。
interface Animal {
  name: string;
  sound: string;
}

function makeSound(animal: Animal) {
  console.log(`${animal.name} makes ${animal.sound} sound`);
}

let dog: Animal = { name: "Dog", sound: "Woof" };
makeSound(dog);  // Output: "Dog makes Woof sound"
  1. 泛型(Generics)
    泛型允许我们编写具有可变类型的代码,使函数和类可以在多种类型上工作。
function identity<T>(arg: T): T {
  return arg;
}

let numResult = identity<number>(42);
let strResult = identity<string>("hello");
  1. 枚举(Enums)
    枚举用于为一组相关的常量赋予友好的名字,增强代码的可读性。
enum Color {
  Red = "RED",
  Green = "GREEN",
  Blue = "BLUE",
}

let selectedColor: Color = Color.Red;
  1. 类型断言(Type Assertion)
    类型断言允许我们手动指定变量的类型,并告诉TypeScript编译器我们知道更多关于变量的类型信息。
let someValue: unknown = "hello";
let strLength: number = (someValue as string).length;
  1. 交叉类型(Intersection Types)
    交叉类型允许我们将多个类型合并为一个类型,表示对象拥有多种类型的属性。
interface Cat {
  name: string;
  sound: string;
}

interface Fish {
  type: string;
  swim: () => void;
}
type CatFish = Cat & Fish;

let catFish: CatFish = { name: "Tom", sound: "Meow", type: "Fish", swim: () => console.log("Swimming") };
  1. 联合类型(Union Types)
    联合类型表示变量可以是多种类型中的一种。
type Result = number | string;

let numResult: Result = 42;
let strResult: Result = "hello";
  1. 可选属性和只读属性
    使用?来定义可选属性,使用readonly来定义只读属性。
interface Person {
  name: string;
  age?: number;
  readonly id: number;
}

以上是关于TypeScript类型声明的一些重要内容。通过合理使用类型声明,我们可以增强代码的可读性、类型安全性和可维护性。类型声明是TypeScript的核心特性之一,可以帮助我们构建更健壮的代码和应用程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值