最近比較邪門(mén),多次遇到不同情況下的同一個(gè)問(wèn)題,那就是typescript中的namespace。不過(guò)追根究底,還是我對(duì)typescript不夠了解導(dǎo)致的,現(xiàn)在記錄下來(lái),希望后面遇到同類(lèi)問(wèn)題的時(shí)候能夠作為參考。
第一次是在vite+ts+vue3中遇到的。我在namespace中定義了enum,結(jié)果瀏覽器上報(bào)錯(cuò),通過(guò)在segmentfault上了解到enum有運(yùn)行時(shí)的部分,不能直接定義在.d.ts文件中。在這里感謝ForkKILLET(https://segmentfault.com/u/forkkillet)。
第二次是在koa2+ts中遇到的。剛開(kāi)始我把tsconfig.json的配置文件檢查了半天,始終沒(méi)發(fā)現(xiàn)問(wèn)題,后面我想了一個(gè)笨辦法,把所有相關(guān)的文件挨個(gè)刪除看看究竟是哪里影響的,最后發(fā)現(xiàn)了一個(gè)關(guān)鍵地方:ts-node。我在其他項(xiàng)目中都是使用tsc運(yùn)行的ts文件,但是這個(gè)項(xiàng)目我用的ts-node,百度之后發(fā)現(xiàn)ts-node 忽略了tsconfig.json 的include-選項(xiàng),需要在tsconfig.json文件中添加配置:

image.png
具體的說(shuō)明參考:https://github.com/TypeStrong/ts-node#help-my-types-are-missing
然后就可以啦!