5

我正在开发一个基于 Fomantic-UI 框架(即 Semantic-UI 的一个分支)的 Angular 项目。

我已经安装了它:

npm install --save fomantic-ui

然后我在angular.json文件中添加了以下几行:

"styles": [
    "node_modules/fomantic-ui/dist/semantic.min.css",
    "src/styles.scss"
],
"scripts": [
    "node_modules/jquery/dist/jquery.min.js",
    "node_modules/fomantic-ui/dist/semantic.min.js"
]

我还为它安装了类型npm install --save @types/semantic-ui,根据这个,它们应该可以在 Fomantic-UI 上正常工作。

无论如何,这似乎不足以使用诸如modal(), dropdown(),之类的函数calendar(),事实上我在我的 IDE (Webstorm) 和编译过程中都遇到了错误:

TS2339: Property 'modal' does not exist on type 'JQuery<HTMLElement>'.

TS2339: Property 'calendar' does not exist on type 'JQuery<any>'.

TS2339: Property 'dropdown' does not exist on type 'JQuery<HTMLElement>'.

等等...

你知道在我的项目中导入 Fomantic-UI 的正确方法是什么吗?

4

2 回答 2

0

有几个问题,先安装jquery

安装jQuery

npm install jquery — save

错误 TS2339:“JQuery”类型上不存在属性“模态”

根据用户@tucker

  1. 安装modal类型不存在属性JQuery

    npm install -D @types/bootstrap

于 2019-12-16T07:25:11.283 回答
0

对于 Typescript 类型,您需要在tsconfig.json文件中添加一些行以将这些类型声明到您的 Angular 应用程序。

{
  "compilerOptions": {
    ...
    "target": "es5",
    "typeRoots": [
      "../node_modules/@types"
    ],
    "types": [
      "hammerjs",
      "jasmine",
      "semantic-ui"
    ],
    ...
}

而且在tsconfig.app.json

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": [
      "semantic-ui"
    ]
  },
  ...
}

在测试文件中相同tsconfig.spec.json

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/spec",
    "types": [
      "jasmine",
      "node",
      "semantic-ui"
    ]
  },
  ...
}
于 2019-12-09T13:17:17.887 回答