我有这个lib.d.ts文件
import { Users } from '@prisma/client';
declare global {
namespace Express {
interface User extends Users {}
}
}
我在同一个文件夹中有这个passport.ts,其中user的类型是Express.User
passport.serializeUser((user, done) => {
done(null, user.id);
});
IDE没有抱怨,但是当我运行应用程序时,我得到了这个错误:error TS2339: Property 'id' does not exist on type 'User'.
这是我的tsconfig.json:
{
"compilerOptions": {
"target": "es2016",
"lib": ["es6"],
"module": "commonjs",
"rootDir": "src",
"resolveJsonModule": true,
"allowJs": true,
"outDir": "build",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitAny": true,
"skipLibCheck": true,
}
}
这是从tsconfig json到文件的路径:
- 配置文件
- 源代码/配置/护照/库.d.ts
为什么会发生这种情况,我已经试着修复这个错误2天了。
EDIT:我修复了错误。它与我启动应用程序的方式有关。
以前我使用以下脚本启动它:
ts-node ./src/index.ts
添加--files标志为我修复了它
ts-node --files ./src/index.ts
下面是一个解释:https://www.npmjs.com/package/ts-node#missing-types
1条答案
按热度按时间mrwjdhj31#
这个问题可能是因为你试图在lib.d.ts文件的顶部导入。我也遇到过类似的问题,在文件的第一行开始声明就解决了我的问题。试试这个。