NodeJS Cannot find namespace 'SpotifyApi'(@types/spotify-api)error in angular project

zz2j4svz  于 2023-06-29  发布在  Node.js
关注(0)|答案(2)|浏览(155)

我有两个项目,一个API和一个客户端(angular)项目。在我的angular项目中,我有以下tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "noImplicitOverride": true,
    "noPropertyAccessFromIndexSignature": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "ES2022",
    "module": "ES2022",
    "useDefineForClassFields": false,
    "lib": ["ES2022", "dom"],
    "paths": {                          /* <-- note this bit */
      "@shared/*": ["../api/src/*"]
    }
  },
  "angularCompilerOptions": {
    "enableI18nLegacyMessageIdFormat": false,
    "strictInjectionParameters": true,
    "strictInputAccessModifiers": true,
    "strictTemplates": true
  }
}

正如你所看到的,我添加了paths对象,以便从"../api/src/*"(API项目)导入文件。这是工作正常,只有我有一个文件在"../api/src/schema/request.d.ts"

export namespace Request {
  export interface GetPlaylistTracks {
    Params: {
      playlistId: string;
    };
    ResBody: SpotifyApi.PagingObject<any> | undefined;
    ReqBody: {};
    ReqQuery: {
      offset: string;
      limit: string;
    };
  }
}

我想把它导入到这个Angular 项目中

import { Request } from '@shared/schema/request';

获取错误

Error: ../api/src/schema/request.d.ts:26:14 - error TS2833: Cannot find namespace 'SpotifyApi'. Did you mean 'Spotify'?

26     ResBody: SpotifyApi.PagingObject<any> | undefined;

命名空间SpotifyApi来自@types/spotify-api(在我的API项目中运行良好)。在我的package.json中的两个项目中,我有

{
  ...
  "devDependencies": {
    ...
    "@types/spotify-api": "^0.0.22"
  }
}
ulmd4ohb

ulmd4ohb1#

你是否尝试添加“@types/spotify-api”,而不是devDependencies:“^0.0.22”到依赖项。

  • “依赖关系”:您的应用程序在生产中所需的包。
  • “devDependencies”:仅本地需要的包

开发和测试。
既然你在模型中引用SpotifyApi.PagingObjec。您需要将其添加到依赖项中。

crcmnpdw

crcmnpdw2#

我可以通过增加

import 'spotify-api';

request.d.ts文件。我还是不知道为什么有必要这么做。顺便说一句,我在不使用paths属性时遇到了同样的问题,即。SpotifyApi不能在任何Angular 项目中工作,只能在我的后端项目中工作。VS Code没有显示任何错误,它们只是出现在终端/Web客户端中。

相关问题