网站搜索

javascript - 手动添加声明文件(TypeScript)


我没有找到 'google-spreadsheet' 的声明文件,所以我正在尝试自己创建一个:

在 typings -> modules 中,我添加了一个名为 "google-spreadsheet" 的新文件夹,然后我在其中添加了一个名为 "index.d.ts" 的新文件,内容如下:

export class GoogleSpreadsheet {

}

在客户文件中,我有这个:

import * as GoogleSpreadsheet from 'google-spreadsheet';

但是 'google-spreadsheet' 被标记为红色,并显示:

TS2307 无法找到模块 'google-spreadsheet'。

顺便说一下,我已经用 NPM 安装了 'google-spreadsheet',它在 JavaScript 中可以正常工作。这里只有 TypeScript 让我烦恼。

有什么办法解决这个问题吗?

答案#1

如果你不需要关心这个模块内部的类型,你可以只创建一个 *.d.ts 文件,并放入以下内容(例如,创建一个 typings.d.ts):

declare module 'google-spreadsheet';

要定义模块内的类型,你可以将上述代码更改为:

declare module 'google-spreadsheet' {
    // define the types...
}

答案#2

从你的项目根目录开始:

  1. mkdir -p src/@types/google-spreadsheet - 为你的模块类型声明创建一个文件夹。
  2. echo "declare module 'google-spreadsheet';" > src/@types/google-spreadsheet/index.d.ts

另外,确保你的 tsconfig 已配置为使用 typeRoots 选项包含 @types 文件夹。

{
  "compilerOptions": {
    "typeRoots": ["src/@types", "node_modules/@types"]
  }
}

此外,你可能还想看看有关声明文件的文档。

相关文章