babel無法識(shí)別ts常量枚舉的問題

使用jest測(cè)試ts代碼時(shí)使用了class插件:

@babel/plugin-proposal-class-properties

在其內(nèi)部引用常量枚舉類型變量時(shí)會(huì)引起錯(cuò)誤:

SyntaxError: /....../types/index.d.ts: 'const' enums are not supported.

查閱babel文檔后指出,babel不支持常量枚舉,因?yàn)閎abel無法進(jìn)行類型檢查:

@babel/plugin-transform-typescript · Babel

babel

jest官網(wǎng)指了一條明路:使用ts-jest

在使用npx ts-jest config:init初始化后jest.config.js果然不不報(bào)這個(gè)錯(cuò)了,但是遇到了window對(duì)象無法查找到的問題:

ReferenceError: window is not defined

檢查后發(fā)現(xiàn)ts-jest在初始化時(shí)把testEnvironment屬性設(shè)置為了node,刪去或改為默認(rèn)值jsdom即可開心地進(jìn)行帶有類型檢查的測(cè)試了;

testenvironment

另外在安裝完ts-jest過程中遇到了無法找到tslib的問題,裝一下即可:

npm i tslib -D

但是在ts-jest文檔中并沒有提及這個(gè)依賴,很是奇怪。

這里是所有在使用babel轉(zhuǎn)ts時(shí)的注意事項(xiàng)

這里附上我配置ts+babel+jest開發(fā)npm包的最小依賴:

{
  "types": "lib/index.d.ts",
  "scripts": {
    "build": "tsc",
    "test": "jest",
    "clean": "rm lib/*.js lib/*.map lib/*.d.ts",
    "deploy": "npm run build && npm publish"
  },
  "devDependencies": {
    "@babel/preset-env": "^7.5.5",
    "@babel/preset-typescript": "^7.3.3",
    "@types/jest": "^24.0.15",
    "@types/node": "^12.6.8",
    "jest": "^24.8.0",
    "ts-jest": "^24.0.2",
    "tslib": "^1.10.0",
    "typescript": "^3.5.3"
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容