有人可以向我解释一下流程中type
与interface
之间的区别是什么?我一直在网上阅读但找不到答案。
例如,以下代码有效:
type Metadata {
key: string;
value: any;
}
type MetadataObj {
[key: string]: Metadata;
}
var metadata: MetadataObj = {
someReducer: { key: "test", value: 1 },
anotherReducer: { key: "test", value: 2 },
};
但是这不会,并产生这个错误:
无法将对象文字分配给
metadata
,因为对象文字[1]中缺少索引器属性,但存在于MetadataObj
[2]中。 (参考文献:[1] [2])
interface Metadata {
key: string;
value: any;
}
interface MetadataObj {
[key: string]: Metadata;
}
var metadata: MetadataObj = {
someReducer: { key: "test", value: 1 },
anotherReducer: { key: "test", value: 2 },
};
我已经阅读过类似这样的帖子,但它并没有真正帮助我: https://github.com/facebook/flow/issues/3876
关于Typescript ...... https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#3.10