不确定我的标题是否正确。我正在为NPM包提示创建类型声明文件。库本身是这样创建的:
var prompt = module.exports = Object.create(events.EventEmitter.prototype);
prompt.started = false;
/* ... */
prompt.start = function (options) {
/* ... */
prompt.memory = options.memory || 10;
/* ... */
prompt.started = true;
return prompt;
}
/* ... */
我正在尝试通过遵循DefinitelyTyped自动生成的类型/prompt/index.d.ts文件中的说明来创建.d.ts文件。
好像我会放
export function start(options?: promptOptions): **????**
定义我们在上面看到的prompt.start
。我已经有
export let started: boolean;
export interface promptOptions {
memory?: number;
allowEmpty?: boolean; // etc.
}
但是我不确定函数应该返回什么类型。它似乎正在返回模块本身的修改版本。我应该如何构造.d.ts文件?谢谢。
答案 0 :(得分:0)
您应该能够创建一个类型,并在.d.ts
文件的两个位置使用它。
我是打字机的新手,但我认为您想要这样的东西:
// Set the type of the module.
export = Prompt
interface PromptOptions {
memory?: number;
allowEmpty?: boolean;
}
type Prompt = {
memory?: number,
started: boolean,
// this type has a method that return itself.
start(PromptOptions): Prompt
}