webentwicklung-frage-antwort-db.com.de

Wie man einen String und eine Nummer in Typescript einfügt

Ich benutze Methode, um Daten zu erhalten

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);
}

Und als Ausgabe bekomme ich

2017-6-13 20:36:6 

Ich würde gerne das Gleiche bekommen, aber gerne

2017-06-13 20:36:06 

Aber wenn ich eine der Zeilen probiere, die ich auskommentiert habe, zum Beispiel diese

month = '0' + month;

Ich bekomme einen Fehler

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

Wie könnte ich Zeichenfolge und Nummer zusammenfassen?

12
Anna F

Vorlagenliterale (ES6 +)

Anstelle von Verkettung wie month = '0' + month; Sie können ein Vorlagenliteral verwenden

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

Ihre Zeichenkettenverkettung wird dann zum Beispiel folgendermaßen:

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

Viel lesbarer, IMO.

Unionstypen

Sie können auch ein Vereinigungstyp verwenden, wenn Sie Variablen deklarieren.

let month: string | number = currentTime.getMonth();

if (month < 10) {
  month = '0' + month;
}
31
Tyler Miller

wenn Sie mit Datum arbeiten möchten, können Sie das Modul momentjs verwenden: 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

und was den Fehler betrifft, den Sie am häufigsten verwenden:

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

Zunächst bin ich mir nicht sicher, warum Sie month als const definieren und dann versuchen, es zu ändern. Deklarieren Sie alle Variablen mit let und konvertieren Sie sie in Zeichenfolgen.

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);
}

Sehen Sie es hier: https://jsfiddle.net/40jbg8qt/

0
abagshaw

Sie könnten so etwas verwenden:

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