打字稿:属性 类型 'typeof aceAjax' 上不存在要求

Typescript: Property require does not exist on type 'typeof aceAjax'

我正在尝试为 ace 编辑器创建自定义自动完成器。我读过的所有文档都说我需要使用 ace.require('ace/ext/language_tools') 来创建自动完成器。但我什至无法让 ace.require() 工作。我不确定我的 package.json 或 .ts 文件本身是否遗漏了什么。

我关注的示例文章: https://github.com/ajaxorg/ace/wiki/How-to-enable-Autocomplete-in-the-Ace-editor

我的 package.json ace 依赖设置像

"dependencies": {
    "@types/ace": "0.0.36",
    "ace": "^1.3.0",
    "ace-builds": "^1.2.9",
    "brace": "^0.11.0"
},

我的 editor.ts 文件很简单:

import * as ace from 'brace';

class RqlEditor {
    private initAutocompleter(...irrelevant);

    public init(customMetadataProperties: String[]) {
        const langTools = ace.require('ace/ext/language_tools');

        langTools.addCompleter(this.initAutocompleter(customMetadataProperties));
        const editor = ace.edit('container');
        editor.setOptions({
            enableBasicAutocompletion: true,
        });    
    }
}

export default RqlEditor;

当然,经过几个小时的搜索,我在提出问题 20 分钟后找到了答案。我在 webpack 中使用大括号,所以我只需要 import 'brace/ext/language_tools。然后我没有使用 ace.require,而是使用了 ace.acequire('ace/ext/language_tools')