Class 如何在typescript中创建下载类?

Class 如何在typescript中创建下载类?,class,typescript,Class,Typescript,我想用Typescript创建自己的下载类。 这就是它现在的样子: export class Download { private _name: string; constructor() { this._name = ""; } public get name(): string { if (this._name !== "") { return this._name } else { return "empty"; } }

我想用Typescript创建自己的下载类。 这就是它现在的样子:

export class Download {
private _name: string;

constructor() {
    this._name = "";
}

public get name(): string {
    if (this._name !== "") {
        return this._name
    } else {
        return "empty";
    }
}
public set name(new_name: string) {
    this._name = new_name;
}

public download(data: string) {
    let encodedUri = encodeURI(data);
    let link: HTMLAnchorElement = <HTMLAnchorElement> document.createElement("a");
    link.setAttribute("href", encodedUri);
    link.setAttribute("download", this._name);
    <HTMLAnchorElement> document.body.appendChild(link);

    link.click();
}
导出类下载{
私有_名称:字符串;
构造函数(){
这个。_name=“”;
}
公共获取名称():字符串{
如果(此._名称!==“”){
返回此名称。\u
}否则{
返回“空”;
}
}
公共集名称(新名称:字符串){
这个。_name=新的_name;
}
公开下载(数据:字符串){
设encodedUri=encodeURI(数据);
let link:htmlanchoreElement=document.createElement(“a”);
link.setAttribute(“href”,encodedUri);
link.setAttribute(“下载”,此名称);
document.body.appendChild(链接);
link.click();
}
}

但是,当我想要执行此操作时,会出现以下错误:ReferenceError:document未定义

我做错了什么


提前感谢^ ^

如果您将下面的代码粘贴到中,它将正常工作。 因此,您的代码似乎是在节点范围内执行的,在节点范围内文档不可用

class Download {
    private _name: string;

    constructor() {
        this._name = "testing";
        this.download("test.html");
    }

    public download(data: string) {
        let encodedUri = encodeURI(data);
        let link: HTMLAnchorElement = <HTMLAnchorElement>document.createElement("a");

        link.setAttribute("href", encodedUri);
        link.setAttribute("download", this._name);
        document.body.appendChild(link);

        link.click();
    }
}
let d = new Download();
类下载{
私有_名称:字符串;
构造函数(){
这是。_name=“测试”;
下载(“test.html”);
}
公开下载(数据:字符串){
设encodedUri=encodeURI(数据);
let link:htmlanchoreElement=document.createElement(“a”);
link.setAttribute(“href”,encodedUri);
link.setAttribute(“下载”,此名称);
document.body.appendChild(链接);
link.click();
}
}
设d=新下载();

也就是说,我不确定创建一个不可见链接,然后以编程方式单击它是下载文件的推荐方式:)

这是运行时错误吗?您正在浏览器中运行它?我在节点上启动“应用程序”。当我想启动此代码时,我按下按钮(onclick)。功能
下载
,它是在浏览器中执行还是在节点中执行?我在浏览器中启动下载
文档
对象应该在浏览器中可用。你的环境有什么特别之处吗?