javascript - 如何导入类的静态成员?

标签 javascript ecmascript-6 babeljs

我正在尝试使用标准导入语法将一个类的静态成员导入到一个文件中。给出上下文:

解构作用于类的静态方法:

class Person {
    static walk() {
        console.log('Walking');
    }
}

let {walk} = Person;
console.log(walk); // walk function

但是,我认为导入的行为类似于解构赋值。如果那是真的,那么我希望以下内容能够工作。但是,当我尝试导入 walk 方法时,它返回为 undefined:

通过导入解构,为什么不起作用?


person.js

export default class Person {
    static walk() {
        console.log('Walking');
    }
}

walker.js

import {walk} from './person';
console.log(walk); // undefined

既然这似乎行不通,我怎样才能将静态方法从一个类导入到另一个模块?

最佳答案

export default可以与 ES6 中的正常导出混合。例如:

// module-a.js
export default a = 1;
export const b = 2;

// module-b.js
import a, { b } from "./module-a";
a === 1;
b === 2;

这意味着导入括号与 destructor assignment 不同.

你想要实现的在 ES6 规范中实际上是不可能的。最好的方法是在导入后使用解构

import Person from "./person";
const { walk } = Person;

关于javascript - 如何导入类的静态成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45639934/

相关文章:

javascript - 如何使用 window.crypto.getRandomValues 获取特定范围内的随机值

javascript - 破折号案例(Kebab 案例) Angular 2 中的数据绑定(bind)

javascript - [巴别塔] : Unknown option: foreign. child

javascript - Jest React 教程中 React 文件扩展名的含义

javascript - jQuery onclick 传递发布变量并重新加载页面

javascript - 如何在 OpenLayers 中沿着道路画一条线

javascript - 如何使复选框始终处于选中状态?

javascript - Node.js 无法导入 ES6 模块

javascript - 长数组的对象解构解决方案?

javascript - 对象字面量中的 "SyntaxError: Unexpected token ..."