簡體   English   中英

將 javascript 轉換為 TypeScript 的問題

[英]Issue in converting javascript to TypeScript

打字稿中的語法問題.. 我用 javascript 編寫代碼並嘗試將其放入 ts 文件中。 進行了一些更改,但仍顯示單元格問題。

class X {
  public appendTableColumn() {
    var tbl = <HTMLTableElement>document.getElementById("myTable"); // table reference
    //var colnum= parseInt(tbl.rows[0].cells.length) - 1;
    // i;
    var m = parseInt(tbl.rows[0].cells.length) + 1;
    // open loop for each row and append cell
    for (var i = 0; i < tbl.rows.length; i++) {
      var k = parseInt(i) + 1;

      //createCell(tbl.rows[i].insertCell(tbl.rows[i].cells.length), "R"+ tbl.rows.length +"C"+ k, 'col');
      this.createCell(
        tbl.rows[i].insertCell(tbl.rows[i].cells.length),
        "",
        "col",
      );
      var x = document.getElementById("myTable").rows[i].cells;
      var btnName = "R" + k + "C" + m;
      x[tbl.rows[i].cells.length - 1].id = "td" + btnName;
      x[tbl.rows[i].cells.length - 1].innerHTML =
        '<button class="button" onclick="reply_click(this.id);" id=' +
        btnName +
        ">Manage Items</button>";
      //alert(btnName);
    }
  }
}

document.getElementById只保證返回一個HTMLElement ,但你隱含地期望它是一個表,TypeScript 不能保證,因為它不查看你的 HTML 代碼(以及其他原因)。

當您有這樣的元素類型假設時,您需要做的是使用類型斷言。

var x = (<HTMLTableElement>document.getElementById("myTable")).rows[i].cells;

parseInt ,您不需要將number類型的變量傳遞給parseInt 以下幾行:

var m = parseInt(tbl.rows[0].cells.length) + 1;
// ...
var k = parseInt(i) + 1;

應該寫成:

var m = tbl.rows[0].cells.length + 1;
// ...
var k = i + 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM