在Typescript中,当我使用require()导入时,如何使它理解类型?

时间:2018-12-23 19:16:17

标签: typescript typescript-typings

我在IntelliJ中使用TypeScript。

假设我有这个

const functions = require('firebase-functions');

然后我像这样使用它:

exports.doSomething = functions.https.onCall((data, context) => {...}

但是,它实际上并没有将https链接到任何东西。它被认为是类型any。然后它也不知道onCall的类型。

我发现可以通过将其添加到文件顶部来解决此问题:

import {onCall} from "firebase-functions/lib/providers/https";

然后像这样使用它:

exports.doSomething = onCall((data, context) => {...}

但是,这不是一个好的解决方案,因为其他名称空间可能包含onCall,因此我需要对其进行区分。

所以,我的问题是:当我使用require()导入内容时,如何使它理解类型?

1 个答案:

答案 0 :(得分:0)

您需要使用import name = require ('path')语法:

 import functions = require('firebase-functions')

您也可以尝试

import * as functions 'firebase-functions';

如果您使用适当的模块系统,则导入将转换为require