【问题标题】:Adding declarations file manually (TypeScript)手动添加声明文件(TypeScript)
【发布时间】:2017-08-15 07:07:54
【问题描述】:

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

在类型 -> 模块中,我添加了一个名为“google-spreadsheet”的新文件夹,并在那里添加了一个名为“index.d.ts”的新文件,其内容如下:

export class GoogleSpreadsheet {

}

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

import * as GoogleSpreadsheet from 'google-spreadsheet';

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

TS2307 找不到模块“谷歌电子表格”。

顺便说一句,我已经安装了 NPM 的“google-spreadsheet”,它可以 JavaScriptly 工作。这里只有 TypeScript 困扰着我。

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

【问题讨论】:

    标签: javascript node.js typescript google-sheets


    【解决方案1】:

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

    declare module 'google-spreadsheet';
    

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

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

    【讨论】:

    • 您将 .d.ts 文件放在哪里? TS好像没找到,不管我放在哪里。
    • 我在我的src 中创建了@types/<module_name> 目录,并将index.d.ts 文件放在那里,上面有一行。它奏效了。
    【解决方案2】:

    从项目的根目录:

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

    另外,确保您的tsconfig 配置为使用the typeRoots option 包含@types 文件夹。

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

    另外,您可能想看看documentation on declaration files

    【讨论】:

      猜你喜欢
      • 2019-09-23
      • 2021-03-25
      • 2017-04-23
      • 2016-09-27
      • 2018-05-12
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      相关资源
      最近更新 更多