无法通过 Angular 语言服务解析 vscode 中管道调用的签名

mmh*_*mmh 5 pipe visual-studio-code angular angular-language-service

我有一个pipesModuleAngular项目,当我将模块导入到另一个项目时,出现错误提示:Unable to resolve signature for pipe invocation在 vs code 中,它仍然有效,构建没有错误,但我不知道如何修复它,我有很多红线...

\n\n

现在,升级后错误提示发生了变化,如下所示: Unable to resolve signature for call of pipeName,但我认为这意味着同样的事情

\n\n

每个管道都会出现此错误,我无法忍受红线...,但可以通过 webstorm 解决。

\n\n

错误提示截图

\n\n

仅此而已,还有什么问题吗?

\n\n

Angular 库项目

\n\n
Angular Library Project\n\xe2\x94\x9c\xe2\x94\x80src\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80pipes\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80hide-tel.pipe.ts\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80pipes.module.ts\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80index.ts\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80public_api.ts\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • 隐藏电话.pipe.ts
  • \n
\n\n
Angular Library Project\n\xe2\x94\x9c\xe2\x94\x80src\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80pipes\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80hide-tel.pipe.ts\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80pipes.module.ts\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80index.ts\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80public_api.ts\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • 管道模块.ts
  • \n
\n\n
import {Pipe, PipeTransform} from \'@angular/core\';\n\n@Pipe({\n  name: \'hideTel\'\n})\nexport class HideTelPipe implements PipeTransform {\n  transform(value: string): string {\n    return value.slice(0, 3) + \'****\' + value.slice(-4);\n  }\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • 索引.ts
  • \n
\n\n
import { NgModule } from \'@angular/core\';\nimport { HideTelPipe } from \'./hide-txt.pipe\';\n\nconst PIPES = [\n  HideTelPipe,\n];\n\n@NgModule({\n  declarations: [ ...PIPES ],\n  exports: [ ...PIPES ],\n})\nexport class PipesModule {}\n\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • 公共API.ts
  • \n
\n\n
export * from \'./hide-tel.pipe\';\nexport * from \'./pipes.module\';\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题项目

\n\n
Question Project\n\xe2\x94\x9c\xe2\x94\x80src\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80my-common\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80my-common.module.ts\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80app\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80some\n\xe2\x94\x82  \xe2\x94\x82     \xe2\x94\x9c\xe2\x94\x80some.component.html\n\xe2\x94\x82  \xe2\x94\x82     \xe2\x94\x9c\xe2\x94\x80some.component.scss\n\xe2\x94\x82  \xe2\x94\x82     \xe2\x94\x94\xe2\x94\x80some.component.ts\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80app.module.ts\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • my-common.module.ts
  • \n
\n\n
export * from \'./pipes/index\';\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • 应用程序模块.ts
  • \n
\n\n
Question Project\n\xe2\x94\x9c\xe2\x94\x80src\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80my-common\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80my-common.module.ts\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80app\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x94\xe2\x94\x80some\n\xe2\x94\x82  \xe2\x94\x82     \xe2\x94\x9c\xe2\x94\x80some.component.html\n\xe2\x94\x82  \xe2\x94\x82     \xe2\x94\x9c\xe2\x94\x80some.component.scss\n\xe2\x94\x82  \xe2\x94\x82     \xe2\x94\x94\xe2\x94\x80some.component.ts\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80app.module.ts\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • 一些.component.html
  • \n
\n\n
import {ModuleWithProviders, NgModule} from \'@angular/core\';\nimport {FormsModule} from \'@angular/forms\';\nimport {CommonModule} from \'@angular/common\';\n\nconst MODULES = [\n  CommonModule,\n  FormsModule,\n  PipesModule,\n];\n\n@NgModule({\n  imports: [\n    ...MODULES,\n  ],\n  declarations: [],\n  exports: [\n    ...MODULES,\n  ],\n  providers: [],\n})\nexport class MyCommonModule {\n  static forRoot(): ModuleWithProviders {\n    return {\n      ngModule: MyCommonModule,\n      providers: [],\n    };\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

mmh*_*mmh 3

可以"preserveSymlinks": true通过 tsconfig.json 中的选项解决

  • tsconfig.json
{
    ...
    "compilerOptions": {
        ...
        "preserveSymlinks": true,
    },
}
Run Code Online (Sandbox Code Playgroud)