export interface MapObj {
(s: string): TaskDaylist
}
let map: MapObj = {};
我得到一个类型错误
类型 '{}' 不可分配给类型 '(s: string) => TaskDaylist'。类型“{}”不匹配签名“(s: string): TaskDaylist”。
我不能让它成为可选的?
:
(s: string)?: TaskDaylist
还有另一种方法可以输入地图并用空对象实例化它吗?
export interface MapObj {
(s: string): TaskDaylist
}
let map: MapObj = {};
我得到一个类型错误
类型 '{}' 不可分配给类型 '(s: string) => TaskDaylist'。类型“{}”不匹配签名“(s: string): TaskDaylist”。
我不能让它成为可选的?
:
(s: string)?: TaskDaylist
还有另一种方法可以输入地图并用空对象实例化它吗?
您可以为此使用类型断言:
let map: MapObj = {} as MapObj;
或者简单地说:
let map = {} as MapObj;
(操场上的代码)
您拥有MapObj
的类型是函数的类型,因此如下所示:
let map: MapObj = function (s: string) {
return {};
};
如果您只想要一个在字符串(键)到 TaskDaylist(值)之间映射的对象,那么它应该如下所示:
interface MapObj {
[s: string]: TaskDaylist;
}
有关它的更多信息,请参阅 Indexable Types。