3 回答

TA貢獻1982條經驗 獲得超2個贊
您可以執行以下操作:
const從模塊中導出a 。根據您的用例,您可以:
export const constant1 = 33;
并在必要時從模塊導入該文件?;蛘撸谀撵o態方法思想,您可以聲明一個static get訪問器:
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
這樣,您將不需要括號:
const one = Example.constant1;
Babel REPL示例
然后,就像您說的那樣,由于a class只是函數的語法糖,因此您可以僅添加一個不可寫的屬性,如下所示:
class Example {
}
Object.defineProperty(Example, 'constant1', {
value: 33,
writable : false,
enumerable : true,
configurable : false
});
Example.constant1; // 33
Example.constant1 = 15; // TypeError
如果我們可以做以下事情可能會很好:
class Example {
static const constant1 = 33;
}
但是不幸的是,此類屬性語法僅在ES7提議中,即使這樣,它也不允許添加const到屬性中

TA貢獻1821條經驗 獲得超5個贊
我正在使用babel以下語法,對我來說:
class MyClass {
static constant1 = 33;
static constant2 = {
case1: 1,
case2: 2,
};
// ...
}
MyClass.constant1 === 33
MyClass.constant2.case1 === 1
請考慮您需要預設"stage-0"。
要安裝它:
npm install --save-dev babel-preset-stage-0
// in .babelrc
{
"presets": ["stage-0"]
}
更新:
目前使用 stage-3

TA貢獻1775條經驗 獲得超11個贊
在此文件中聲明:
沒有(有意地)沒有直接的聲明方式來定義原型數據屬性(方法以外的類)或實例屬性
這意味著它是故意這樣的。
也許您可以在構造函數中定義一個變量?
constructor(){
this.key = value
}
添加回答
舉報