繁体   English   中英

Angular 6 错误 TS8011 类型参数只能在 .ts 文件中使用

[英]Angular 6 error TS8011 type arguments can only be used in a .ts file

我有一个 Angular 6 应用程序,我需要包含一个 JS 库。 该库是专有的,所以我无法详细了解它是什么,但我遇到的问题是 TypeScript 编译器似乎与诸如这个<<24>>字符混淆,认为这是一个类型转换,当它真的是不是。 由于这个问题,我在编译时收到以下错误。

error TS8011: 'type arguments' can only be used in a .ts file

我包含的文件,它正在烘焙,是一个传统的 JS 文件。 我无法修改此文件,因为它是一个缩小的库,并且无法通过 NPM 使用。

我最初的想法是让 TS 编译器忽略/排除文件,但这由于某种原因不起作用。 这是我尝试过但没有用的 tsconfig.json 配置。

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "allowJs": true,
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  },
  "exclude": [
    "./src/js/MyLib.js"
  ]
}

我试过启用和禁用“allowJs”,但我得到了同样的错误。

你们都知道如何让 TS 编译器有效地忽略这个文件,这样我就可以用脚本标签导入它吗?

谢谢!

您需要引用这些类型的文件(标准 .js 文件)的方式是以下两种方式之一:

  1. angular.json文件的script数组中添加脚本引用
  2. 直接在index.html文件中添加脚本引用

我会选择第一个选项,因为文档特别说明了这一点:

https://angular.io/guide/workspace-config#additional-build-and-test-options

一个包含要添加到项目全局上下文中的 JavaScript 脚本文件的对象。 脚本的加载与您将它们添加到 index.html 中的标签完全一样。 在下面的样式和脚本配置中查看更多信息。

我认为您遇到的问题是您尝试使用import语句或以tsc (TypeScript 编译器)尝试转译它的方式引用脚本文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM