打字稿类型的基本设置-找不到名称“角度”

时间:2020-03-23 21:28:09

标签: asp.net .net angularjs typescript .net-core

我的团队正在处理一个较旧的AngularJS项目,我们最近已将其升级到.Net Core 3.1,而如果没有该项目,该项目就可以正常运行,我们希望开始升级脚本以使用TypeScript。我们当中没有人真正使用过Typescript,而且我敢肯定我们的配置中有一些非常基本的东西。

我已经建立了一个演示项目,可以在这里找到: https://github.com/ExcaliburVT/TypeScriptBasic

该项目具有针对libsjs,Angular材质,引导程序等的libman引用,以及其相应的TypeScript“类型”(至少我认为它们是正确的)。 此处:https://github.com/ExcaliburVT/TypeScriptBasic/blob/master/libman.json

我们的tsconfig.json完全像这样: https://github.com/ExcaliburVT/TypeScriptBasic/blob/master/tsconfig.json

{
  "compilerOptions": {
    "noImplicitAny": true,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es6",
    "moduleResolution": "Node",


    "baseUrl": "wwwroot",
    "typeRoots": ["./lib/types"]
  },
  "include": [
    "wwwroot/Scripts/**/*"
  ],
  "exclude": [ "node_modules", "**/*.spec.ts" ],
  "compileOnSave": true
}

最后,我创建了两个示例ts文件,它们使用不同的方式尝试引用角度。

https://github.com/ExcaliburVT/TypeScriptBasic/blob/master/wwwroot/Scripts/exampleOne.ts // TS2304(TS)找不到名称“角度” // TS2503(TS)找不到名称空间'ng'

https://github.com/ExcaliburVT/TypeScriptBasic/blob/master/wwwroot/Scripts/exampleTwo.ts // TS2688(TS)找不到“角度”的类型定义文件

如果我们将tsconfig.json的“ include”中的类型文件夹的路径添加到目录库中,则会发现极端情况,但这会导致类型本身的编译器错误。

我敢肯定这很简单,我们设置错误,但是我没有主意。

提前谢谢!

其他测试。请注意,直接设置路径似乎也不起作用。

"baseUrl": "wwwroot",
    "paths": {
      "angular": [ "lib/types/angular" ],
      "angular-material": [ "lib/types/angular-material" ],
      "bootstrap": [ "lib/types/bootstrap" ],
      "jquery": [ "lib/types/jquery" ]
    }

1 个答案:

答案 0 :(得分:0)

看来根本的问题是当打字稿希望所有内容都能通过节点工作时,我试图使用libman。我使用.net核心角度模板开始了一个全新的项目,lo并发现它没有使用libman,它只是使用了node并带有json包,效果很好。

我采用了相同的模式并将其应用于我的测试项目,并且令人惊讶的是,现在一切都很好....令人震惊。

最重要的是,看起来建议使用libman进行javascript软件包管理的文档https://docs.microsoft.com/en-us/aspnet/core/client-side/libman/libman-vs?view=aspnetcore-3.1确实具有误导性,特别是对于那些不熟悉整个生态系统的人。

我想如果您想在没有节点作为依赖项的情况下进行基本开发,这是一个可行的选择。

注意:如果有人希望看到其中的区别,我将使用“工作”版本更新git repo。