接口声明中缺少属性属性

时间:2017-06-29 06:54:26

标签: typescript

我有一个节点列表,我已将其声明为

const node7 = { value: -50000, next: undefined };
const node6 = { value: 5, next: node7 };
const node5 = { value: 9, next: node6 };
const node4 = { value: 1, next: node5 };
const node3 = { value: -16, next: node4 };
const node2 = { value: 36, next: node3 };
const node1 = { value: 3, next: node2 };
const head = { value: 16, next: node1 };

我创建了一个像

这样的界面
interface Node {
  value: number,
  next: Node | undefined
}

我的方法看起来像

function shortList(head: Node){
  ...
}

Typescript抱怨

Argument of type '{ value: number; next: { value: number; next: { value: number; next: { value: number; next: { val...' is not assignable to parameter of type 'Node'.
  Property 'attributes' is missing in type '{ value: number; next: { value: number; next: { value: number; next: { value: number; next: { val...

我做错了什么?

1 个答案:

答案 0 :(得分:1)

有一个名为Node的全局类型引用了DOM的节点。

您的界面实际上是合并Node的全局声明。你需要做的是

  • 导出它以使包含的文件成为模块,并且Node不会与全局Node合并。
  • 完全重命名(例如MyNode

未来的建议

对那里的混乱感到抱歉!如果您尝试在编辑器中查找对Node的所有引用,那么可能会暗示这一点。除此之外,这是你真正需要了解的有关语言的知识。