【发布时间】:2018-05-04 10:44:53
【问题描述】:
我正在尝试为 this simple queue implementation 创建类型文件。
在我的 TS 项目中,我创建了一个名为 customTypings 的文件夹,并在我的 tsconfig.json 文件的 typeRoots 属性中指向它。
这是我的 .d.ts 文件的样子:
declare module 'queue-fifo' {
export default class Queue {
constructor();
isEmpty(): boolean;
size(): number;
clear(): void;
enqueue(data: any): void;
dequeue(): any;
peek(): any;
}
}
我导入为:import Queue from 'queue-fifo';
然后我尝试创建Queue 类的实例:const queue = new Queue();
此时,我在 VS Code 中没有收到任何类型错误,也没有收到任何编译错误。但是,当我尝试通过调试器运行我的代码时,我得到:
Exception has occurred: TypeError
TypeError: queue_fifo_1.default is not a constructor
at BinarySearchTree.bfs (/../binarySearchTree.ts:110:23)
at testBst (/../binarySearchTree.ts:139:10)
at Object.<anonymous> (/../binarySearchTree.ts:144:1)
at Module._compile (module.js:632:14)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
如果我在该行中断,我会看到 Queue(我导入的)未定义,但 queue_fifo_1 已已定义,我可以使用该名称创建类的实例在调试控制台中。
有人可以解释我在声明/使用导致这种不良行为的声明中做错了什么吗?
【问题讨论】:
-
尝试在你的主ts文件中使用
export class Queue
标签: typescript typescript-typings