[英]Defining class type in type typescript
我在我的一个项目中使用 ts,我在这里有点初学者:
我有这样的东西
import * as admin from "firebase-admin";
import { Request } from "express";
export interface FileStorage {
storage: admin.storage.Storage;
rootBucket: any,
bucketName: string | undefined;
}
export class FileStorage implements FileStorage {
constructor() {
this.storage = admin.storage();
this.rootBucket = this.storage.bucket();
this.bucketName = admin.instanceId().app.options.storageBucket;
}
在上面的代码片段中,我的 rootBucket 的类型是any
。 我希望它更精确:
这是存储界面
interface Storage {
/**
* Optional app whose `Storage` service to
* return. If not provided, the default `Storage` service will be returned.
*/
app: admin.app.App;
/**
* @returns A [Bucket](https://cloud.google.com/nodejs/docs/reference/storage/latest/Bucket)
* instance as defined in the `@google-cloud/storage` package.
*/
bucket(name?: string): Bucket;
}
}
如果我cmd + click
Bucket 然后它需要你
declare class Bucket extends ServiceObject {
您可以在ZBF215181B51405222137B3D4F6B73544AZ上找到声明 class 存储桶
在您的情况下,您可以跳过接口并直接在 class 中声明成员变量。 您可以从库中导入 Bucket class 并将其用于您的 class:
import * as admin from "firebase-admin";
import { Bucket } from "@google-cloud/storage"
export class FileStorage {
storage: admin.storage.Storage = admin.storage();
rootBucket: Bucket;
bucketName: string | undefined;
constructor() {
this.rootBucket = this.storage.bucket();
this.bucketName = admin.instanceId().app.options.storageBucket;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.