TypeScript类型(数字、字符串、字面量、数组、元组、枚举、对象等)

简介: TypeScript类型(数字、字符串、字面量、数组、元组、枚举、对象等)

一、数字

// number
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o722;
// @ts-ignore
let big: bigint = 9007199254740991n;

二、字符串

// string
let color: string = "blue";
color = "red";
let fullName: string = "bob bob"

三、布尔

// boolean
let isDone: boolean = false;

四、字面量

// 字面量
let a = 10;
a = 10;

五、任意类型

// any 表示任意类型,任意类型TS关闭类型检查,不建议使用
// 显式申明any
// let d:any;
//隐式申明any
let d;
d = 10;
d = "hello";
d = true;

六、未知类型(安全的任意类型)

// unknown 表示位置类型的值
let e: unknown;
e = 10;
e = "hello";
e = true;

类型断言

let str: string;
// any类型的变量可以赋值給任意类型变量
str = d;
// unknown  TS2322: Type 'unknown' is not assignable to type 'string'.
// str=e;
// unkonwn 是类型安全的any unkonwn类型的变量不能直接赋值给其他变量
if (typeof e === "string") {
    str = e;
}
// 类型断言
str = e as string;
str = <string>e;

七、空值

function fun1(): void {
 
}

八、没有值

function fun3(): never {
    throw new Error("error");
}

九、对象

//object表示一个js对象
let a: object;
a = {};
a = function () {
};
 
// {}用来指定对象中可以包含那些属性 语法:{属性名:属性值,属性名:属性值}
// 属性名?:属性值 ?为可选属性
let b: { name: string, age?: number };
b = {name: '张三'};
b.age = 18;
 
// [propName:string]:any 表示任意类型个属性 propName可以是任意非关键字字符串
let c: { name: string, [propName: string]: any };
c = {name: "李四", age: 18, gender: "男"}
 
// 定义一个函数的参数及返回值
let d: (a: number, b: number) => number;
d = function (a, b) {
    return a + b;
}

十、数组

//数组 
// let 变量: 类型[]; 
// let 变量: Array<类型>;
let e: string[];
e = ['a', 'b'];
 
let f: Array<number>;
f = [1, 2, 3, 4];
 
// 不建议
let g: any[];
g = [1, 'str', true]

十一、元组

//元祖,元组就是固定长度的数组
let h: [string, number];
h = ['hello', 123];

十二、枚举

enum Gender {
    Male,
    Female,
}
 
let i: { name: string, gender: Gender };
i = {
    name: "王五",
    gender: Gender.Female
}

十三、组合类型

//&指定类型
let j: { name: string } & { age: number };
j = {name: "孙悟空", age: 500}
 
//类型别名 方便类型复用
type myType = 1 | 2 | 3 | 4 | 5;
let k: myType;
let l: myType;
k = 5;
 
 
// 可以使用 |来连接多个类型(联合类型)
let m: "male" | "female";
m = "male";
m = "female";
let n: boolean | string;
n = true;
n = "hello";
相关文章
|
3天前
|
JavaScript 安全 前端开发
TypeScript类型声明:基础与进阶
通过本文的介绍,我们详细探讨了TypeScript的基础与进阶类型声明。从基本数据类型到复杂的泛型和高级类型,TypeScript提供了丰富的工具来确保代码的类型安全和可维护性。掌握这些类型声明能够帮助开发者编写更加健壮和高效的代码,提高开发效率和代码质量。希望本文能为您在使用TypeScript时提供实用的参考和指导。
10 2
|
16天前
|
JavaScript 开发者
在 Babel 插件中使用 TypeScript 类型
【10月更文挑战第23天】可以在 Babel 插件中更有效地使用 TypeScript 类型,提高插件的开发效率和质量,减少潜在的类型错误。同时,也有助于提升代码的可理解性和可维护性,使插件的功能更易于扩展和升级。
|
27天前
|
JavaScript 前端开发
TypeScript【类型别名、泛型】超简洁教程!再也不用看臭又长的TypeScript文档了!
【10月更文挑战第11天】TypeScript【类型别名、泛型】超简洁教程!再也不用看臭又长的TypeScript文档了!
|
30天前
|
JavaScript 前端开发 安全
TypeScript【基础类型】超简洁教程!再也不用看臭又长的TypeScript文档了!
【10月更文挑战第9天】TypeScript【基础类型】超简洁教程!再也不用看臭又长的TypeScript文档了!
|
15天前
|
JavaScript 前端开发 安全
TypeScript进阶:类型系统与高级类型的应用
【10月更文挑战第25天】TypeScript作为JavaScript的超集,其类型系统是其核心特性之一。本文通过代码示例介绍了TypeScript的基本数据类型、联合类型、交叉类型、泛型和条件类型等高级类型的应用。这些特性不仅提高了代码的可读性和可维护性,还帮助开发者构建更健壮的应用程序。
22 0
|
2月前
|
JavaScript
typeScript进阶(9)_type类型别名
本文介绍了TypeScript中类型别名的概念和用法。类型别名使用`type`关键字定义,可以为现有类型起一个新的名字,使代码更加清晰易懂。文章通过具体示例展示了如何定义类型别名以及如何在函数中使用类型别名。
39 1
typeScript进阶(9)_type类型别名
|
2月前
|
JavaScript
typeScript基础(2)_any任意值类型和类型推论
本文介绍了TypeScript中的`any`任意值类型,它可以赋值为其他任何类型。同时,文章还解释了TypeScript中的类型推论机制,即在没有明确指定类型时,TypeScript如何根据变量的初始赋值来推断其类型。如果变量初始化时未指定类型,将被推断为`any`类型,从而允许赋予任何类型的值。
56 4
|
1月前
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
45 0
|
1月前
|
JavaScript 前端开发 开发者
深入理解TypeScript:类型系统与实用技巧
【10月更文挑战第8天】深入理解TypeScript:类型系统与实用技巧
|
2月前
|
JavaScript
typeScript基础(5)_对象的类型-interfaces接口
本文介绍了TypeScript中接口(interfaces)的基本概念和用法,包括如何定义接口、接口的简单使用、自定义属性、以及如何使用`readonly`关键字定义只读属性。接口在TypeScript中是定义对象形状的重要方式,可以规定对象的必有属性、可选属性、自定义属性和只读属性。
40 1