美文网首页
typescript中使用自定义declare class,去a

typescript中使用自定义declare class,去a

作者: 一只特例独行de猪 | 来源:发表于2020-04-03 17:33 被阅读0次

    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
    });
    

    相关文章

      网友评论

          本文标题:typescript中使用自定义declare class,去a

          本文链接:https://www.haomeiwen.com/subject/lhjkphtx.html