TypeScript:是否可以根据泛型类型创建一个空对象?

时间:2020-05-15 20:40:57

标签: typescript web

假设我有一个通用类型T,并且我想初始化一个类型T的空对象。我想像这样的东西,但我无法使其正常工作。

type Phone = {
 number: string;
 isMain: boolean;
}

const newPhone = createEmptyObj<Phone>();

console.log(newPhone);
/*
{
  number: '';
  isMain: false;
}
*/

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。因为它是type,所以您必须手动定义所有内容,因此对interface也是如此。

如果要使用默认值,则需要使用具有已定义默认值的class

class Phone {
 number: string = '';
 isMain: boolean = false;
}

const newPhone = new Phone();

console.log(newPhone);
/*
{
  number: '';
  isMain: false;
}
*/