3 回答

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

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
我正在使用babel以下語(yǔ)法,對(duì)我來(lái)說(shuō):
class MyClass {
static constant1 = 33;
static constant2 = {
case1: 1,
case2: 2,
};
// ...
}
MyClass.constant1 === 33
MyClass.constant2.case1 === 1
請(qǐng)考慮您需要預(yù)設(shè)"stage-0"。
要安裝它:
npm install --save-dev babel-preset-stage-0
// in .babelrc
{
"presets": ["stage-0"]
}
更新:
目前使用 stage-3

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
在此文件中聲明:
沒(méi)有(有意地)沒(méi)有直接的聲明方式來(lái)定義原型數(shù)據(jù)屬性(方法以外的類)或?qū)嵗龑傩?/p>
這意味著它是故意這樣的。
也許您可以在構(gòu)造函數(shù)中定義一個(gè)變量?
constructor(){
this.key = value
}
添加回答
舉報(bào)