【问题标题】:Convert ES6 class to typescript class将 ES6 类转换为 typescript 类
【发布时间】:2020-05-27 16:01:00
【问题描述】:

我有以下 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();

我想让它成为一个打字稿类。我试过了,但有些属性没有正确识别。我怎样才能使它成为一个打字稿类?

【问题讨论】:

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


    【解决方案1】:

    最好使用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;
    }
    

    }

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-19
        • 2015-08-07
        • 2023-02-05
        • 1970-01-01
        • 2019-12-11
        • 2018-03-26
        • 1970-01-01
        • 2018-10-09
        相关资源
        最近更新 更多