【发布时间】:2017-02-07 12:56:31
【问题描述】:
在 TypeScript 中真的很新。我有一组预设,用户可以添加或修改现有预设。因为它只有几个键,所以我做了一个界面。
interface IStylePreset {
type : string;
backgroundColor : string;
color? : string
}
实现在这里:
static stylePresets : Array<IStylePreset> = [
{ type: "default", backgroundColor: "#37474f" , color: "#ECEFF1"},
{ type: "success", backgroundColor: "#37474f", color: "#ECEFF1" },
{ type: "error", backgroundColor: "#d32f2f", color: "#EEE"}
];
现在我有一个配置函数,它采用自定义预设来更改现有预设或添加新预设。
static config = {
types(newPresets) : void {
newPresets = [].concat(newPresets);
for(var i = 0, len = newPresets.length, current; i< len; i++){
var pos = Message.Util.find(Message.stylePresets, newPresets[i].type)
current = newPresets[i];
if(pos !== -1) for(var key in current) Message.stylePresets[pos][key] = current[key];
else Message.stylePresets[Message.stylePresets.length] = current;
}
}
};
问题是,我不知道在 newPresets 的类型中指定什么,因为它既接受对象数组,也接受单个对象(这构成单个元素数组 newPresets = [].concat(newPresets);) .
我正在尝试学习 TypeScript,但我不知道我所做的是否正确。有人可以帮我吗?进一步阅读材料或文档将是黄金。
【问题讨论】:
-
有人指出这个问题是重复的,所以我投了反对票。
标签: javascript arrays typescript interface