【发布时间】:2018-07-18 17:10:26
【问题描述】:
我想知道如何将此 Javascript 代码更改为 TypeScript:
var storage = require('@google-cloud/storage')();
var myBucket = storage.bucket('my-bucket');
var file = myBucket.file('my-file');
file.makePublic(function(err, apiResponse) {});
我一直在尝试这样改变它:
import * as storage from '@google-cloud/storage';
const myBucket = storage.Bucket('my-bucket');
const file = myBucket.file('my-file');
file.makePublic(function(err, apiResponse) {});
但是,Visual Studio Code 是这一行的基础(粗体):
const myBucket = storage.Bucket('my-bucket');
如果我将鼠标放在带下划线的线上,我会收到以下消息:
[ts] 'typeof Bucket' 类型的值不可调用。你的意思是 包括“新”?类 Storage.Bucket
所以,我想我必须使用关键字 new 来实例化该类,但该行仍然由 Visual Studio Code 加下划线(粗体):
const myBucket = new storage.Bucket('my-bucket');
这次错误信息发生了变化:
[ts] 期望 2 个参数,但得到 1 个。构造函数 Storage.Bucket(storage: storage.Storage, name: string): storage.Bucket
根据错误,我需要使用两个参数。一种存储类型和一种字符串类型。我已经有了第二个(字符串类型)。我不确定如何创建存储。
如何创建第一个参数(存储类型)?
如果我们看到 Javascript 示例,它只要求第二个参数(字符串类型)。 Javascript 代码以某种方式推断或具有存储类型的默认值。是否可以在相同代码的 TypeScript 版本中做同样的事情?
感谢您的帮助。
【问题讨论】:
标签: typescript firebase google-cloud-storage firebase-storage google-cloud-functions