Typescript 接口声明中缺少属性属性
我有一个节点列表,我已经声明为Typescript 接口声明中缺少属性属性,typescript,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 = { va
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...
我做错了什么?有一个名为
节点的全局类型,它引用DOM的节点
您的接口实际上正在与节点的全局声明合并。你需要做的是
- 导出它,使包含的文件成为一个模块,并且您的
节点
不会与全局节点
合并
- 完全重命名它(例如,
MyNode
)
未来建议
很抱歉这里的混乱!如果您尝试在编辑器中查找对节点的所有引用,就会暗示这一点。除此之外,您确实需要仔细阅读才能了解该语言。您还没有发布实际生成错误的代码部分。我的猜测是,您之所以会出现此错误,是因为您使用的名称Node
已经存在。尝试将你的类型重命名为其他类型。尼科,这真的不再重要了。我们允许逗号和分号,所以这是风格上的。