Object
Object类型是所有Object类的实例的类型,它包括所有JavaScript内置的对象类型,我们常说的万物皆对象说的就是Object. (相当于包含了所有的类型)
使用如下:
const obj: object = {} // 对象
const arr: object = [1, 2, 3] // 数组
const fn: object = function () { // 函数
console.log(obj);
}
const tuple: object = ['count', 10] // 元组
const map: object = new Map() // 键值对集合
const set: object = new Set() // 无序集合
上述代码写法虽然不会报错,但无法使用其特有属性或函数
eg:执行fn(),会提示无法执行;使用map.set会找不到该函数
解决方法: 使用具体的数据类型替换Object,如下:
const obj: Object = {}
const arr: number[] = [1, 2]
const fn: Function = function () {
console.log(obj);
}
const tuple: [string, number] = ['count', 1]
const map: Map<number, string> = new Map()
const set: Set<string> = new Set()
obj.valueOf()
arr.push(4)
fn()
tuple.push(1)
map.set(0, "0")
set.add('hello')
object
object是TypeScript中的类型(在JS中不存在),它是非基本数据类型的统称,包括普通对象、数组、函数等, 常用于泛型约束.
使用如下:
let obj:object = {} // 正确
let obj1:object = [] // 正确
let obj2:object = ()=>111 // 正确
let obj3:object = 'qwe' // 错误
let obj4:object = 666 // 错误
{}
相当于new Object, 除了不能修改值,其他同上述说到的Object。(建议尽量不用)
let obj: {} = {name:1} // 正确
let obj1: {} = () => 123 // 正确
let obj2: {} = 123 // 正确
obj.age=11 // 错误