当我使用npm安装类型记录定义时,可以在Visual构建的类型记录文件中使用它们:
npm install @types/jQuery<TypeScriptCompile Include="wwwroot\js\site.ts" />添加到.csproj中。$全局变量。但是,当我使用libman下载类型记录定义时,我很难配置类型记录构建来使用它们。
我想我需要添加tsconfig.json,但它似乎干扰了csproj中的TypeScriptCompile。
wwwroot
js
site.d.ts
site.ts
lib
jquery
jquery.min.js
@types
jquery
index.d.ts
misc.d.ts
…
MyProject.csproj
libman.json我如何修改这个项目(.csproj,tsconfig.json),使我能够在www.root\lib\@类型中处理定义文件和全局变量,而不是节点_模块/@类型?
我创建了tsconfig.json并设置了
"compilerOptions": {
"typeRoots": [ "wwwroot/lib/@types" ]
}但是,现在构建会在site.ts中返回诸如“无法找到name site.ts”之类的错误。MyInterface是用site.d.ts定义的。为什么在没有tsconfig.json的情况下识别类型,而现在却没有?我想避免添加///<reference>注释
编辑:
最后,我将site.d.ts重命名为global.d.ts (感谢@itminus减号答复),并在tsconfig中显式设置popper.js模块的路径:
{
"compileOnSave": true,
"compilerOptions": {
"baseUrl": "./",
"paths": {
"popper.js": [ "wwwroot/lib/popper.js" ] //use this instead of wwwroot/lib/@types/popper.js which is incompatible
},
"typeRoots": [ "wwwroot/lib/@types" ]
},
"include": [ "wwwroot/js/**/*.ts" ]
}popper.js是引导4的依赖关系。它有点棘手,因为@types/bootstrap依赖于popper.js而不是@types/popper.js (这是不兼容的,会在@type/ than /index.d.ts中抛出类型记录错误);
幸运的是,popper.js包含类型记录定义(index.d.ts),我只需告诉类型记录编译器在哪里查看。
发布于 2018-11-30 03:16:16
我想原因是site.ts和site.d.ts在同一个文件夹下。因此,只加载site.ts文件。
请参阅在这里讨论
解析过程总是倾向于.ts文件,而不是.d.ts。这里的rational是一个.d.ts文件可以从.ts文件中生成,所以.ts文件是一个最新版本的真相。
将site.d.ts移动到其他文件夹,或将其重命名为site.global.d.ts。都完美无缺地为我工作。
https://stackoverflow.com/questions/53536608
复制相似问题