在TypeScript中,数据类型用于描述存储在变量中的值的种类。TypeScript 提供了与 JavaScript 相同的原始数据类型,如 number
、string
、boolean
、null
和 undefined
,但它还增加了一些额外的类型,如 enum
(枚举)、any
、void
、tuple
(元组)、array
(数组)、object
等,以及 ES6 中引入的 symbol
类型。
以下是 TypeScript 中一些主要的数据类型:
1.Number:用于表示数字值。
2.String:用于表示文本数据。
3.Boolean:用于表示逻辑值,true
或 false
。
4.Array:用于表示数组类型。有两种方式可以定义数组类型:
5.Tuple:元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
6.Enum:枚举类型用于定义数值集合。
7.Any:any
类型允许你在编译时跳过类型检查。
8.Void:通常用于表示没有任何类型值的函数返回类型。
9.Null 和 Undefined:null
和 undefined
在 TypeScript 中是它们各自的类型。
10.Never:never
类型表示的是那些永不存在的值的类型。
11.Object:object
类型表示非原始类型(即非 number
、string
、boolean
、symbol
、null
或 undefined
)的值。
12.Symbol:sym
bol
是 ES6 引入的一种新的原始数据类型,表示唯一的标识符。
13.接口:
在 TypeScript(Ts)中,接口(Interface)是一种定义对象形状的方式,它可以帮助你指定对象应该有哪些属性和方法,但它本身并不直接实现这些属性和方法。
在上面的例子中,Person
是一个接口,它定义了对象应该有一个 name
属性(类型为 string
)、一个 age
属性(类型为 number
)以及一个 greet
方法(无返回值)。Employee
类实现了 Person
接口,因此它必须包含接口中定义的所有属性和方法。
TypeScript 中的接口还支持可选属性、只读属性、索引签名、类类型、泛型等高级特性。
例如,可选属性:
只读属性:
14.类型别名:type 自定义类型的名字
类型别名使用 type
关键字来定义。下面是一个简单的例子:
在上面的例子中,我们定义了三个类型别名:
Name
是string
类型的一个别名。NameOrAge
是string
或number
类型的联合类型(Union Type)的一个别名。Person
是一个对象类型,其中name
属性是Name
类型(即string
类型),而age
属性是可选的Number
(注意这里应该使用number
类型,但我在示例中使用了Number
作为示例来指出常见的误区)。