【问题标题】:Object destructing ES6 class对象解构 ES6 类
【发布时间】:2019-04-01 08:56:07
【问题描述】:

如何正确地为 ES6 类中的方法应用对象破坏

user.ts

import { Request, Response } from "express";

export class User {

  constructor (){
      Object.assign(this,{
          root:this.root,
          get:this.get
      })
  }  
  public  root(req: Request, res: Response) { 
    res.status(200).send({
      message: "DEFAULT request successful!!"
    });
  }
  public get(req: Request, res: Response){
    res.status(200).send({
        message: "USER request  successful!!"
      });
  }

}

export const user = new User();

我是这样导入的

import  {root,get} from './user'

但是会抛出没有导出成员的错误

更新

基于 cmets 我将导出更改为以下

let obj = new User();

export const user = {
    root:obj.root,
    get:obj.get
}

但还是同样的错误

【问题讨论】:

  • 您没有导出任何名为 get 的内容,因此 import { .. get } 将不起作用
  • @CertainPerformance 我没听懂
  • 您正在导入get,但您从未导出任何名为get的内容
  • @iambatman 你正在导出user,因此你应该import { user } from './user'。您没有名为 getroot 的导出。破坏和导出不是一回事。
  • 你正在混合解构和导入/导出非默认的东西符号。

标签: javascript typescript express ecmascript-6


【解决方案1】:

您需要导出 rootget - 解构您的 export 行:

export const { root, get } = new User();

如果您还想导出用户:

export const user = new User();
export const { root, get } = user;

您也可以只导入 user 并手动创建函数:

import { user } from "./user";
const { root, get } = user;

【讨论】:

  • 不应该是import { user } from "./user";吗?这不是默认导出,对吧?
  • 哦,是的@briosheje。
猜你喜欢
  • 2021-11-16
  • 2020-02-18
  • 2017-07-24
  • 2023-03-03
  • 2018-08-30
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多