TypeScript对不同种变量怎么声明不同类型
在 TypeScript 中,声明不同类型的变量主要依赖于其类型系统。TypeScript 支持多种基本类型和复杂类型,并允许您明确地指定每个变量的类型。以下是一些常见的类型声明方式:
基本数据类型
-
布尔值(boolean)
let isDone: boolean = false;
-
数字(number)
let decimal: number = 6; let hex: number = 0xf00d; let binary: number = 0b1010; let octal: number = 0o744;
-
字符串(string)
let color: string = "blue"; color = 'red';
-
数组(Array)
- 使用
type[]
方式:let list: number[] = [1, 2, 3];
- 或者使用泛型 Array 类型:
let list: Array<number> = [1, 2, 3];
- 使用
-
元组(Tuple)
允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。let x: [string, number]; x = ["hello", 10]; // 正确
-
枚举(Enum)
提供了更友好的名称来描述一组数值。enum Color {Red, Green, Blue} let c: Color = Color.Green;
-
任意值(Any)
当不希望对变量进行类型检查时,可以使用any
类型。let notSure: any = 4; notSure = "maybe a string instead";
-
空值(Void)
表示没有任何类型,通常用于函数返回值类型,表示没有返回值。function warnUser(): void { console.log("This is my warning message"); }
-
Null 和 Undefined
分别表示null
和undefined
的类型。let u: undefined = undefined; let n: null = null;
复杂类型
-
联合类型(Union Types)
使用|
来分隔每个类型,允许变量是多个类型中的一个。let id: number | string; id = 10; // 可以赋值为数字 id = "10"; // 也可以赋值为字符串
-
交叉类型(Intersection Types)
使用&
符号组合多个类型为一个类型,创建具有所有属性的新类型。interface Person { name: string; } interface Lifespan { birth: Date; death?: Date; // 可选属性 } type PersonWithLifespan = Person & Lifespan; let person: PersonWithLifespan = { name: "John Doe", birth: new Date(1990, 6, 2) };
-
类型别名(Type Aliases)
可以为类型定义一个新名字。type Name = string; type NameResolver = () => string; type NameOrResolver = Name | NameResolver;
通过这些方法,您可以灵活地在 TypeScript 中声明不同类型的变量,确保代码更加健壮和易于理解。此外,TypeScript 还支持更多高级类型操作,如泛型、映射类型等,可以根据需要进一步探索。
声明变量demo
在这里插入代码片
export enum RoleEnum {
PROJECT = '1',
NON_PROJECT = '2'
}
interface User {
userName: string;
userNo: string;
}
interface Attendee extends User {}
interface ReviewUser {
roleId: number;
roleName: string;
}
interface MeetingData {
attachmentIds: string[];
attendees: Attendee[];
reviewUsers: ReviewUser[];
type?:RoleEnum ;
}