我正试图将一个遗留的(非常老式的Angular JS)项目从NPM切换到PNPM,并正在与打字错误作斗争.绝大多数是像这样的东西 error TS2339: Property 'mock' does not exist on type 'IAngularStatic'.使用NPM,我得到了一份干净的Typescript 转载,我想保持这种方式.

我的tsfig.json是

{
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "target": "ES2017",
    "sourceMap": true,
    "inlineSources": true,
    "allowSyntheticDefaultImports": true
  },
  "exclude": [
    "node_modules"
  ]
}

我试着把import "angular";import "angular-mocks";import "@types/angular";import "@types/angular-mocks";相加,但得到了error TS2686: 'angular' refers to a UMD global, but the current file is a module. Consider adding an import instead.

我也try 了各种吊装方案,但有些随意,因为我对它没有太大的了解.

有谁能给我指个方向吗?

编辑:如果我这样做了,为了澄清

rm -rf node_modules
rm package-lock.json pnpm-lock.yaml npm-shrinkwrap.json
npm i --ignore-scripts
tsc

我没有得到错误(但这需要很长时间),而

rm -rf node_modules
rm package-lock.json pnpm-lock.yaml npm-shrinkwrap.json
pnpm i --ignore-scripts
tsc

相对较快地产生170个左右的TSC错误,其中绝大多数是TS2339错误.

推荐答案

此处的问题已通过使用presveSymLinks解决 https://www.typescriptlang.org/tsconfig#preserveSymlinks

Typescript相关问答推荐

如何从具有给定键列表的对象类型的联合中构造类型

使用前的组件渲染状态更新

TypScript在对象上强制执行值类型时推断对象文字类型?

在Angular中,如何在文件上传后清除文件上传文本框

react 路由6操作未订阅从react 挂钩表单提交+也不使用RTK查询Mutations

TypeScrip界面属性依赖于以前的属性-针对多种可能情况的简明解决方案

为什么有条件渲染会导致material 自动完成中出现奇怪的动画?

TypeScrip中的类型安全包装类

如何过滤文字中的类对象联合类型?

RXJS将对键盘/鼠标点击组合做出react

为什么上下文类型在`fn|curred(Fn)`的联合中不起作用?

类型实例化过深,可能是无限的&TypeScrip中的TupleUnion错误

重写返回任何

基于区分的联合键的回调参数缩小

如何在Vue动态类的上下文中解释错误TS2345?

有没有一种简单的方法可以访问Keyboard Shortcuts JSON文件中列出的每个命令的显示名称(标题)?

两个子组件共享控制权

const nav: typechecking = useNavigation() 和 const nav = useNavigation() 之间有什么区别?

在 TypeScript 中实现类型级别深度优先搜索

使用 TypeScript 在 SolidJS 中绘制 D3 力图