如何在Typescript中连接字符串和数字

时间:2017-07-13 18:43:18

标签: javascript typescript concat

我正在使用方法来获取数据

function date() {
    let str = '';

    const currentTime = new Date();
    const year = currentTime.getFullYear();
    const month = currentTime.getMonth();
    const day = currentTime.getDate();

    const hours = currentTime.getHours();
    let minutes = currentTime.getMinutes();
    let seconds = currentTime.getSeconds();
    if (month < 10) {
        //month = '0' + month;
    }
    if (minutes < 10) {
        //minutes = '0' + minutes;
    }
    if (seconds < 10) {
        //seconds = '0' + seconds;
    }
    str += year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds + ' ';

    console.log(str);
}

作为输出我得到了

2017-6-13 20:36:6 

我想得到同样的东西,但是喜欢

2017-06-13 20:36:06 

但是,如果我尝试其中一行,我注释掉了,例如这一行

month = '0' + month;

我收到错误

Argument of type 'string' is not assignable to parameter of type 'number'.

我怎么能连接字符串和数字?

5 个答案:

答案 0 :(得分:27)

模板文字(ES6 +)

而不是month = '0' + month;之类的连接 您可以使用template literal

const paddedMonth: string = `0${month}`;

然后你的字符串连接变成了这个例子:

str = `${year}-${paddedMonth}-${day} ${hours}:${minutes}:${seconds} `;

更具可读性,IMO。

答案 1 :(得分:4)

如果您想使用日期,可以使用momentjs模块: https://momentjs.com

moment().format('MMMM Do YYYY, h:mm:ss a'); // July 13th 2017, 11:18:05 pm
moment().format('dddd');                    // Thursday
moment().format("MMM Do YY");               // Jul 13th 17
moment().format('YYYY [escaped] YYYY');     // 2017 escaped 2017
moment().format();                          // 2017-07-13T23:18:05+04:30

关于你得到的错误,你最常使用的是:

 let monthStr: string = month;
 if ( month < 10) {
     monthStr = '0' + month;
 }

答案 2 :(得分:0)

首先,我不确定您为什么要将month定义为const,然后尝试更改它。用let声明所有变量并将它们全部转换为字符串,你应该好好去。

function date() {
    let str = '';

    const currentTime = new Date();
    let year = currentTime.getFullYear().toString();
    let month = currentTime.getMonth().toString();
    let day = currentTime.getDate().toString();

    let hours = currentTime.getHours().toString();
    let minutes = currentTime.getMinutes().toString();
    let seconds = currentTime.getSeconds().toString();
    if (month < 10) {
        month = '0' + month;
    }
    if (minutes < 10) {
        minutes = '0' + minutes;
    }
    if (seconds < 10) {
        seconds = '0' + seconds;
    }
    str += year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds + ' ';

    console.log(str);
}

在此处查看:https://jsfiddle.net/40jbg8qt/

答案 3 :(得分:0)

您可以使用以下内容:

let pais:string = 'Ecuador';
let codigo:number = 593;
let opcionUno:string = this.pais + this.number
let opcionDos:string = this.pais.concat(this.number);

答案 4 :(得分:-1)

您也可以这样做:

let month: string | number = currentTime.getMonth();
if (month < 10) month = '0' + month;

或者这个:

const month = currentTime.getMonth();
const monthStr = (month < 10 ? "0" : "") + month;