typescript中使用自定义declare class,去a
2020-04-03 本文已影响0人
一只特例独行de猪
not constructable问题:
参考:https://stackoverflow.com/questions/41017287/cannot-use-new-with-expression-typescript
declare class AliOSS {
public ossBucket: string;
public expiration: number;
public put: (key: string, path: string) => { ossKey: string, ossBucket: string; url: string};
public url: string;
constructor(args: Object);
}
// 方法1:使用typeof
const OSS = require("ali-oss") as typeof AliOSS;
const _ossClient = new OSS({
region: 'oss-cn-shanghai',
endpoint: data.endpoint,
accessKeyId: data.accessKeyId,
accessKeySecret: data.accessKeySecret,
stsToken: data.securityToken,
bucket: data.bucketName,
protocol: data.protocol
});
// 方法2: 使用Constructable和泛型
type Constructable<T> = new(...args: Object[]) => T;
const OSS = require("ali-oss") as Constructable<AliOSS>;
const _ossClient = new OSS({
region: 'oss-cn-shanghai',
endpoint: data.endpoint,
accessKeyId: data.accessKeyId,
accessKeySecret: data.accessKeySecret,
stsToken: data.securityToken,
bucket: data.bucketName,
protocol: data.protocol
});