网站搜索

如何在没有 TypeScript 定义文件的情况下使用 Aurelia 第三方插件?


我刚接触 Aurelia 和 Typescript。我正在尝试在我的项目中使用 aurelia-dialog 插件。我已经遵循了所有必要的步骤,但出现错误“无法找到模块 'aurelia-dialog'”。出错的代码行是

import {DialogService, DialogController} from "aurelia-dialog";

我很确定所有配置都已正确设置,因为这是我唯一遇到的错误。我有

aurelia.use
  .standardConfiguration()
  .developmentLogging()
  .plugin('aurelia-dialog');

我需要为此创建一个 TypeScript 定义文件才能使其工作吗,如果需要,该怎么做?还是我遗漏了什么,这应该可以直接使用?

答案#1

看起来 aurelia-dialog 构建尚未配置为生成 TypeScript 类型定义文件。这可能很快会被添加。与此同时,你可以在你的项目中添加一个 aurelia-dialog.d.ts 文件,内容如下:

declare module 'aurelia-dialog' {
  export class DialogService {
    open(settings: any): Promise;
  }
  export class DialogController {
    constructor(renderer, settings, resolve, reject);
    ok(result: any): Promise<DialogResult>;
    cancel(result: any): Promise<DialogResult>;
    error(message): Promise<DialogResult>;
    close(ok: boolean, result: any): Promise<DialogResult>;
    settings: {lock: boolean, centerHorizontalOnly: boolean };
  }

  export class DialogResult {
    wasCancelled: boolean;
    output: any;
    constructor(cancelled: boolean, result: any);
  }
}