前言
在使用了 typescript 的项目开发中,有时候为了某个对象进行声明,经常需要写完 interface 之后,在赋值的时候又写了一遍相似的代码;当想对它增加一个键值,又得去增加 interface 的字段声明。因此很想和声明一个变量那样,在写键值的时候直接进行类型声明。
对象的传统声明方式
对于对象的类型声明,我们经常使用 interface、type、class 的方式,先对整体类型进行声明,然后再去赋值,例如:
interface IInterface {
id: number;
name: string;
}
type IType = {
id: number,
name: string,
}
class IClass {
id: number;
name: string;
}
const data: IType = {
id: 1,
name: 'A'
}
但是这样会出现代码重复,特别是当键值对很多或者不确定数量的时候,经常需要去维护类型声明和赋值两部分“长得很像”的代码。
使用类型断言声明
有时候我们只是希望在后续的赋值操作中不会出现类型错误,或者只是一次性的声明不打算复用。那么可以采用下面的方式实现:
const data = {
id: 1 as number,
name: