将ES6类转换为打字稿类

时间:2020-02-12 06:41:10

标签: javascript node.js reactjs typescript ecmascript-6

我有以下ES6课程。

class Http {
    isFormData;
    url;
    token;
    data;

    constructor() {
        this.isFormData = false;
        this.url = '';
        this.token = '';
        this.data = {};
    }

    /** Set url */
    setUrl(url: string) {
        this.url = url;
        return this;
    }

    /** Set data */
      setData(data: Object) {
        this.data = data;
        return this;
    }
}

export default new Http();

我想使其成为打字稿类。我尝试过,但是某些属性无法正确识别。如何使其成为打字稿课?

2 个答案:

答案 0 :(得分:5)

您需要指定属性的类型。我还建议您将它们设为私有:

class Http {
    private isFormData: boolean;
    private url: string;
    private token: string;
    private data: Object;

    constructor() {
        this.isFormData = false;
        this.url = '';
        this.token = '';
        this.data = {};
    }

    /** Set url */
    setUrl(url: string) {
        this.url = url;
        return this;
    }

    /** Set data */
    setData(data: Object) {
        this.data = data;
        return this;
    }
}

export default new Http();

答案 1 :(得分:0)

使用export class Http导出类更好,这样您就可以导入它 为import {Http} from './http'

 export  class Http {
 isFormData: boolean;
 url: string;
 token: string;
 data: Object;

constructor() {
    this.isFormData = false;
    this.url = '';
    this.token = '';
    this.data = {};
}

/** Set url */
setUrl(url: string) {
    this.url = url;
    return this;
}
/** Set data */
setData(data: Object) {
    this.data = data;
    return this;
}

}