请将此代码转换为TypeScript

时间:2018-07-05 23:35:35

标签: typescript

我需要将下面的Nodejs代码转换为TypeScript。如果有人可以帮助我解决这个问题,或者对如何实现这一想法有所帮助,我将感到非常高兴。我做了各种各样的尝试,但是没有用。

var https = require('https');
var querystring = require('querystring');

function request(callback) {
var path='/v1/payments';
var data = querystring.stringify( {
    'authentication.userId' : '52542LesMor',
    'authentication.password' : '123456',
    'AuthId' : '9965652',
    'amount' : '30',
    'currency' : 'ZAR',
    'paymentBrand' : 'VISA',
    'paymentType' : 'DB',
    'card.number' : '8500000040000000',
});
var options = {
    port: 5986,
    host: 'me.leslie.com',
    path: path,
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': data.length
    }
};
var postRequest = https.request(options, function(res) {
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        jsonRes = JSON.parse(chunk);
        return callback(jsonRes);
    });
});
postRequest.write(data);
postRequest.end();
}

request(function(responseData) {
console.log(responseData);
});

1 个答案:

答案 0 :(得分:1)

从JavaScript转换为TypeScript可以很轻松。 我在node中使用TypeScript遇到的任何问题通常都是节点APImodulesbuild-tools的性质(我也想吃蛋糕)。 所以TypeScript并不是真正的问题

没有更具体的信息,我想我会在typescriptlang playground

中获得一些copypasta的乐趣。

const https = require('https');
const querystring = require('querystring');

request(callback: () => {}) {
  const path = '/v1/payments';
  const data = querystring.stringify({
    'authentication.userId': '52542LesMor',
    'authentication.password': '123456',
    'AuthId': '9965652',
    'amount': '30',
    'currency': 'ZAR',
    'paymentBrand': 'VISA',
    'paymentType': 'DB',
    'card.number': '8500000040000000',
  });
  const options = {
    port: 5986,
    host: 'me.leslie.com',
    path: path,
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Content-Length': data.length
    }
  };
  const postRequest = https.request(options, (res) => {
    res.setEncoding('utf8');
    res.on('data', (chunk) => {
      jsonRes = JSON.parse(chunk);
      return callback(jsonRes);
    });
  });
  postRequest.write(data);
  postRequest.end();
}

const aCallback = (responseData) => {
    console.log(responseData);
    request(aCallback);
}

对样式偏好的修改非常温和。

编辑:

希望它显示出一种更多的TypeScripty风格,这是我最近学习该语言后所选择的。 (TS-ee?Swifty?讨厌吗?)

我通常也喜欢const我使用的函数的每个部分(return值),但是好的 performant 不变性可能需要额外的库或更多的功能方式我认为这对Angular不利(我希望最终能尽快在React中重建项目)。