node.js - erro TS2305: O módulo '"tls"' não possui o membro exportado 'TLSSocketOptions'
Estou tentando me conectar ao MongoDB usando os drivers do MongoDB em um projeto Node.js, mas estou tendo problemas na compilação e recebo o erro mencionado "node_modules/mongodb/mongodb.ts34.d.ts:31:10 - error TS2305: Module '"tls"' has no exported member 'TLSSocketOptions'." Qualquer ajuda sobre como resolver esse aparente problema de pacote do Node seria muito útil!
Quando eu inspeciono, o pacote tls tem TLSSocketOptions e parece tê-lo exportado através do seguinte no final do arquivo
declare module 'node:tls' {
export * from 'tls';
}
Meu package.json
{
"main": "wwwroot/index.js",
"bin": "wwwroot/index.js",
"scripts": {
"start": "node ./wwwroot/index.js",
"dev": "ts-node src/",
"compile": "npx tsc",
"postinstall": "npx tsc"
},
"engines": {
"node": "14.18.1"
},
"dependencies": {
"@discordjs/uws": "^10.149.0",
"discord.js": "^11.4.2",
"mongodb": "^4.1.4",
"snoowrap": "^1.23.0"
},
"devDependencies": {
"@types/node": "^11.15.54",
"pkg": "^4.5.1",
"ts-node": "^10.4.0",
"tslint": "^5.16.0",
"typescript": "^3.9.10"
}
}
Resposta #1
Sua versão de @types/node parece ser antiga e eu acho que o export em questão foi adicionado desde então
Resposta #2
1 - Atualize suas definições de tipo do Node.js:
npm install --save-dev @types/node@latest
2- Verifique sua versão do Node.js: TLSSocketOptions foi renomeado para TlsOptions em versões mais recentes. Use SecureContextOptions ou TlsOptions em vez disso.
3- Se você estiver usando o módulo tls diretamente, atualize seu código para usar o tipo correto:
import { TlsOptions } from 'tls';/* or */ import { SecureContextOptions } from 'tls';
4- Verifique a sua versão do TypeScript:
npm install typescript@latest
