Π£ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π² javascript.
Π‘Π±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠΏΠ° Π² namespace.d.ts ΠΈ socket.d.tsγ ΠΠ»Π°ΡΡ Namespace ΠΈ Socket ΡΠ°ΡΡΠΈΡΡΠ΅Ρ EventEmitter. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ 'emit', ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ emit EventEmitter.
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ?
ΠΠΈΠΆΠ΅ ΠΌΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° tsconfig:
{
"compileOnSave": true,
"compilerOptions": {
"outDir": "./dist",
"lib": ["es5", "es6"],
"target": "es3",
"module": "commonjs",
"moduleResolution": "node",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"allowSyntheticDefaultImports": true,
},
"include": ["./src/**/*"],
}
ΠΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
"dependencies": {
"debug": "^3.1.0",
"koa": "^2.13.0",
"socket.io": "^3.0.0"
},
"devDependencies": {
"@types/koa": "^2.11.6",
"@types/node": "^14.14.6",
"supervisor": "^0.12.0",
"typescript": "^4.0.5"
}
ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ: 'tsc', Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
node_modules/socket.io/dist/namespace.d.ts(89,5): error TS2416: Property 'emit' in type 'Namespace' is not assignable to the same property in base type 'EventEmitter'.
Type '(ev: string, ...args: any[]) => Namespace' is not assignable to type '(event: string | symbol, ...args: any[]) => boolean'.
Type 'Namespace' is not assignable to type 'boolean'.
node_modules/socket.io/dist/socket.d.ts(84,5): error TS2416: Property 'emit' in type 'Socket' is not assignable to the same property in base type 'EventEmitter'.
Type '(ev: string, ...args: any[]) => this' is not assignable to type '(event: string | symbol, ...args: any[]) => boolean'.
Type 'this' is not assignable to type 'boolean'.
Type 'Socket' is not assignable to type 'boolean'.
ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°!
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
Debian, socket.io 3.0
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠΎΠ³ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ https://github.com/socketio/socket.io/commit/50671d984a81535a6a15c704546ca7465e2ea295.
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Π²ΡΠΏΡΡΡΠΈΡΡ ΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅?
ΠΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ Π½Π°ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΡΠ³Π΅ΡΠΈΠ½Π³ fix/typescript-emit
Π²Π΅ΡΠΊΡ
ΠΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄ΠΎΡΡΠΎΠΉΠ½ΡΠΌ ΡΠ΅Π»ΠΈΠ·Π° 3.0.1.
3.0.1 Π²ΡΡΠ»Π°!
Π― ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΠΏΡΠΈΠΌΠ΅Ρ TypeScript Π·Π΄Π΅ΡΡ: https://github.com/socketio/socket.io/tree/master/examples/typescript
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Π²ΡΠΏΡΡΡΠΈΡΡ ΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅?
ΠΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ Π½Π°ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΡΠ³Π΅ΡΠΈΠ½Π³
fix/typescript-emit
Π²Π΅ΡΠΊΡ