【发布时间】:2020-01-31 09:41:55
【问题描述】:
class Todo {
private _date: Date;
public name: string;
constructor(todo: Todo) {
this._date = todo._date;
this.name = todo.name;
}
get date() { ... }
}
// example
const todos = Agent.fetchTodos();
const modifiedTodos1 = map.todos(todo => new Todo(todo)); // works fine
const modifiedTodos2 = map.todos(todo => new Todo( { ...todo, _date: new Date() } )); // doesn't work
第二行 modifiedTodos2 代码给了我以下错误:property date is missing in type [...]
在我的场景中,我需要使用扩展运算符来扩展 todo 对象,并添加一个额外的道具。但我不确定为什么我会看到这个错误以及如何处理它......
而且我也不能使用? 运算符使date 成为可选。
非常感谢您提前指出为什么我的方案不起作用以及如何使它起作用!
【问题讨论】:
-
我认为这个声明
get date() { ... }限制了其他属性的创建,或者至少将 attrdate设置为必需属性。
标签: javascript typescript types