TypeScript类型声明文件.d.ts在nodemon(ts-node)中无法生效的问题
解决Express Request对象扩展在ts-node/nodemon中失效的问题
直接修改你的/src/types/index.d.ts文件,去掉外层的export声明,修改后的代码如下:
declare global { namespace Express { interface Request { userName?: string; } } }
原因说明
你原来的代码用了export declare global,这会把全局命名空间的扩展变成模块级导出。tsc编译时会扫描所有类型文件并合并声明,所以能正常识别,但ts-node、nodemon这类实时编译工具不会自动处理模块内的全局扩展,导致类型无法生效。
去掉export后,这个文件就成为了全局类型声明文件,ts-node会自动加载它,Request对象的userName属性就能被正确识别,不管是用ts-node/nodemon运行,还是tsc编译后运行,都不会再出现TS2339错误。
内容的提问来源于stack exchange,提问作者Chirag Patel
相关产品推荐
相关产品推荐

