我正在使用以下tsconfig.json文件来编译.ts文件。
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "classic",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true,
"target": "ES6",
},
"files": [
"client.ts"
]
}
client.ts文件导入一个模块(noice-json-rpc),该模块具有2个不同的版本(一个带有.d.ts文件,另一个带有.js文件) 不幸的是,该js文件仅管理json v1 rpc,而.d.ts文件json v2 rpc调用。
noice-json-rpc模块(https://github.com/nojvek/noice-json-rpc) 已经用npm设置了
typescript client.ts程序是:
// compile : tsc -p tsconfig.json
import * as WebSocket from 'ws'
import * as http from 'http'
import * as rpc from 'noice-json-rpc'
export interface ExampleService {
getRandomInt(params : number) : Promise <number>;
}
async function setupClient() {
let result: number;
try {
const api = new rpc.Client(new WebSocket('ws://localhost:8080'), {logConsole: true}).api()
const result = await api.ExampleService.getRandomInt(10);
console.log('Result is ???', result)
} catch (e) {
console.error(e)
}
}
在运行时,带有节点;如何强制加载.d.ts文件而不是.js文件? 当我运行已编译的client.js文件时,它始终会加载.js文件!
目录结构为:
./client.ts
./client.js (compiled)
./node_modules/node-json-rpc/lib/.....