「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战」
前置知识
object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型。
object类
当我们这样声明时是不会报错的
let foo: object = function () { }
let foo1: object = []
let foo2: object = { }
但是我们使用其声明一个原始值就会出现报错
let foo3: object = false // 报错
如何声明一个对象?
我们可以使用声明对象自变量的方法进行
let foo = {}
当然我们还可以增加一些限制
let foo: {name: string, age: number } = {name:'Tom', age: 11 }
当然还可以这样写
let foo: {name?: string, age: number } = {name:'Tom' }
如何规范的定义对象?
在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型。(这个下次在讲 哈哈哈哈)
Array数组类型
我们可以这样声明
let list: number[] = [1, 2, 3];
当然也可以使用数组泛型的方式
let list: Array<number> = [1, 2, 3];
这两个方法都表示由此类型元素组成的一个数组
元组类型
元组类型是一个很特殊的类型,在我理解来就是一个明确元素类型和元素数量的数组
基础的模子
// 我们先定义一个
let x: [string, number];
正确例子
x = ['hello', 10]; // OK
错误例子
x = [10, 'hello']; // Error
或
x = ['hello', 10, 10]; // Error
枚举类型
enum类型是对JavaScript标准数据类型的一个补充。
在JavaScript
中我们很经常使用一个对象去模拟枚举类。
let Status = {
dangurous: 0,
safe: 1,
}
在TypeScript
中如何表现?
enum Color {
Red,
Green,
Blue
}
let c: Color = Color.Green; // 1
在我们没有进行赋值的情况下,从0
开始为元素编号,依次累加。利用此特性我们还可以进行如下的操作
enum Color {
Red = 2,
Green,
Blue
}
let c: Color = Color.Green; // 3
当然如果我们进行这样操作的话就会出现报错了
enum Color {
Red = 'red',
Green, // Enum member must have initializer.
Blue // Enum member must have initializer.
}
let c: Color = Color.Green;
这里主要是因为字符串不会自增长,所以我们需要进行单独赋值
小结
本章主要是和大家介绍了一下关于对象类型下面的一些值的操作,之后我们会给大家带来进行一些类、接口、函数的相关文章的