如何在角度项目中使用.flat()?

时间:2019-03-27 20:28:49

标签: javascript angular

我正在尝试在Angular ts文件中使用flat()。当我运行项目时,它给出一个错误:[question.determinativeTerms].flat不是一个函数! 我安装了它:

npm install --save array.prototype.flat

function matchUserInputToDeterminativePhrases(
    faqs: Question[],
    searchPhrase: string
): Question[] {
    return faqs.reduce((matches, question) => {
        let foundMatch = false;
        [question.determinativeTerms].flat().forEach(term => {
            if (
                !foundMatch &&
                searchPhrase &&
                searchPhrase
                .toLowerCase()
                .search(new RegExp(`\\b${term.toLowerCase()}`)) !== -1
            ) {
                foundMatch = true;
                matches.push(question);
            }
        });
        return matches.reverse();
    }, []);
}

2 个答案:

答案 0 :(得分:0)

仅npm安装软件包是不够的,您需要导入并使用它。看documentation for array.prototype.flat,看来如果要将函数添加到数组原型上,则需要在应用程序中的某处执行以下操作:

import flat from 'array.prototype.flat';
flat.shim();

答案 1 :(得分:0)

从 angular 11 和 thx 到 typescript 3.9,您现在可以在 flat() 文件中通过以下配置直接使用 angular 内部的 tsconfig.json 方法。

"compilerOptions": {
    "target": "es2018",
    "module": "es2020",
    "lib": ["es2020", "dom"],
}

for further read