我用npx create-next-app --example with-typescript with-typescript-app
(https://github.com/zeit/next.js/tree/master/examples/with-typescript)的typescript启动了一个新的Next.js项目。
当我尝试创建一个类时:
export class Programm {
id: string;
name: string;
thumbnailUrl: string;
}
语法错误:Property 'id' has no initializer and is not definitely assigned in the constructor.ts(2564)
当我像这样添加一个构造函数时:
constructor(id: string, name: string, thumbnailUrl: string) {
this.id = id;
this.name = name;
this.thumbnailUrl = thumbnailUrl;
}
为什么会这样呢?我怎样才能创建一个对象,使得在初始化类时属性为空呢?
同样的代码在没有angular中的构造函数的情况下也能正常工作
3条答案
按热度按时间xu3bshqb1#
您可以使用
?
修饰符将属性定义为可选属性:现在,如果你初始化一个新的“Programm”类型的示例,属性将有
undefined
值。whlutmcx2#
我想你可以按照以下步骤->跟随@ Jurica Smircic先生的解决方案->定义初始值
堆栈中有很多关于为什么不应该使用null或undefined的讨论。他们总是鼓励通过构造函数或在对象初始化过程中定义初始值。例如空对象。为了更好地理解,您可以查看这些Q&A线程。谢谢
wgmfuz8q3#
正如您所问的,如果您希望初始化时的值为空而不是未定义,您可以这样做: