普通对象

来源:12-2 Jest 的安装和配置 Jest 安装

慕工程1298299

2020-02-24

声明一个普通对象
const person: object = {}
为对象添加一个新的属性
person.name = ‘’

这样类型检测会报错

目前是以下这样写
interface PlainObject {
[propsName: string]: any
}

const person: PlainObject = {}
person.name = ‘’

这样写虽然不报错,但是感觉怪怪的,有什么好办法吗

写回答

2回答

ustbhuangyi

2020-02-25

//img1.sycdn.imooc.com/szimg/5e548ae7096753f318101564.jpg
类似课程这种搞法,通过 Object.create(null) 去创建一个空对象,其实是因为它的返回值是 any 类型。

0
2
ustbhuangyi
回复
慕工程1298299
可以的
2020-02-25
共2条回复

ustbhuangyi

2020-02-25

下面你用了索引类型,它允许 key 是一个 string,值是任意类型,所以你这么写肯定不会报错。
我不太明白你的目的是什么呢?

0
1
慕工程1298299
merge(config: any) { let options: object = {} for (let key in config) { if (strat.some(item => (item === key))) { options[key] = config[key] } } return options } 我经常会遇到这样的场景,上面的option对象定义新属性时是会报错的。一般这样的情况是怎么处理的呢
2020-02-25
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程