如何强制.d.ts模块加载

时间:2019-01-28 20:44:01

标签: node.js typescript

我正在使用以下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/.....

0 个答案:

没有答案