我正在尝试使用标准导入语法将一个类的静态成员导入到一个文件中。给出上下文:
解构作用于类的静态方法:
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/