当前位置: 首页 > 知识库问答 >
问题:

前端 - vue3+ts项目 在使用fake-progress工具库时没有声明文件 如何给这种没有自带类型文件的工具库写类型文件呢?

戚奇略
2023-05-20

//自己写的声明文件 要怎么写

interface Option {
    timeConstant: number
}
declare module 'fake-progress' {
    declare class FakeProgress{
        constructor(option: Option)
        start(): void
        end(): void
    }
}

//源文件

const FakeProgress = function (opts) {
    if (!opts) {
        opts = {};
    }

    this.timeConstant = opts.timeConstant || 1000;
    this.progress = 0;
    this._running = false;
    this._intervalFrequency = 100;
    this.autoStart = opts.autoStart || false;
    this.parent = opts.parent;
    this.parentStart = opts.parentStart;
    this.parentEnd = opts.parentEnd;
    if (this.autoStart) {
        this.start();
    }
};

/**
 * Start fakeProgress instance
 * @method
 */

FakeProgress.prototype.start = function () {
    this._time = 0;
    this._intervalId = setInterval(this._onInterval.bind(this), this._intervalFrequency);
};

FakeProgress.prototype._onInterval = function () {
    this._time += this._intervalFrequency;
    this.setProgress(1 - Math.exp(-1 * this._time / this.timeConstant));
};

/**
 * Stop fakeProgress instance and set progress to 1
 * @method
 */

FakeProgress.prototype.end = function () {
    this.stop();
    this.setProgress(1);
};

/**
 * Stop fakeProgress instance
 * @method
 */

FakeProgress.prototype.stop = function () {
    clearInterval(this._intervalId);
    this._intervalId = null;
};

/**
 * Create a sub progress bar under the first progres
 * @method
 * @param {object} options - options of the FakeProgress contructor
 * @param {object} [options.end=1] - the progress in the parent that correspond of 100% of the child
 * @param {object} [options.start=fakeprogress.progress] - the progress in the parent that correspond of 0% of the child
 */

FakeProgress.prototype.createSubProgress = function (opts) {
    const parentStart = opts.start || this.progress;
    const parentEnd = opts.end || 1;
    const options = Object.assign({}, opts, {
        parent: this,
        parentStart: parentStart,
        parentEnd: parentEnd,
        start: null,
        end: null
    });

    const subProgress = new FakeProgress(options);
    return subProgress;
};

/**
 * SetProgress of the fakeProgress instance and updtae the parent
 * @method
 * @param {number} progress - the progress
 */

FakeProgress.prototype.setProgress = function (progress) {
    this.progress = progress;
    if (this.parent) {
        this.parent.setProgress(((this.parentEnd - this.parentStart) * this.progress) + this.parentStart);
    }
};

if (typeof exports === 'object' && typeof module === 'object') {
    module.exports = FakeProgress;
}

共有1个答案

曾歌者
2023-05-20
interface Options {
    timeConstant: number;
    autoStart?: boolean;
    parent?: FakeProgress;
    parentStart?: number;
    parentEnd?: number;
}

declare module 'fake-progress' {
    export = FakeProgress;

    class FakeProgress {
        constructor(opts: Options);

        progress: number;

        createSubProgress(opts: Options): FakeProgress;

        end(): void;

        setProgress(progress: number): void;

        start(): void;

        stop(): void;
    }
}
 类似资料:
  • 我通过pnpm的workspace搭建了一个工作环境,并且在项目中安装typescript,但是在packages中的项目中无法识别别名文件的路径。报错如下: 我在对应的packages项目中添加了tsconfig.json,配置如下: 配置中已经包含了,对应的文件路径,在vite.config.ts也配置了相应的别名路径,项目时可以正常运行的。只是vscode会抛出这个错误,**.ts文件不会有

  • 简介 在IO操作中,文件的操作相对来说是比较复杂的,但也是使用频率最高的部分,我们几乎所有的项目中几乎都躺着一个叫做FileUtil或者FileUtils的工具类,我想Hutool应该将这个工具类纳入其中,解决用来解决大部分的文件操作问题。 总体来说,FileUtil类包含以下几类操作工具: 文件操作:包括文件目录的新建、删除、复制、移动、改名等 文件判断:判断文件或目录是否非空,是否为目录,是否

  • 当我运行以下代码段时,引发下面引用的错误 错误 Error Domain=NSCOCOAERORDOMAIN Code=260“操作无法完成。(Cocoa错误260)。”UserInfo=0x17585bf0{NSUnderlyingError=0x175706b0“操作无法完成。没有这样的文件或目录”,NSFilePath=~/库,NSUserStringVariant=(文件夹)} 这是我使用

  • 问题内容: 我的目标是将Django ModelForm上的FileField限制为PDF和Word文档。我用谷歌搜索的所有答案都与创建一个单独的文件处理程序有关,但是我不确定如何在ModelForm的上下文中这样做。我可以用来限制上传文件类型的settings.py中有设置吗? 问题答案: 创建一个验证方法,例如: 并将其包含在FileField验证器中,如下所示: 此外,你应该手动设置模型并对

  • 文件工具类 方法 readFile(filePath) 读取文件 参数 : 参数 类型 名称 备注 filePath string 文件路径 返回值: 类型 名称 备注 Object BK.Buffer对象 例子: //读取沙盒文件路径下的 名为test的文件 var buff = BK.FileUtil.readFile("GameSandBox://test"); writeFile(pat

  • 本文向大家介绍java文件读写工具类分享,包括了java文件读写工具类分享的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java文件读写工具类的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。