簡體   English   中英

具有TypeScript的ExtJS,未捕獲錯誤

[英]ExtJS with TypeScript, error not caught

我正在嘗試使用Sencha ExtJS的TypeScript:

/// <reference path="../ExtJS.d.ts" />

Ext.define("CompanyGridPanel", <Ext.grid.IPanel>{
    extend: "Ext.grid.Panel",

    config: {
        companyStore: null
    },

    initComponent: function () {
        this.myFunction(10, 52);

        return this.callParent(arguments);
    },

    myFunction : (a:number, b:Ext.IPanel, ...args) => {

    }
});

函數MyFunction接受Ext.IPanel類型的對象作為第二個參數,但用數字代替。 TS編譯器未捕獲此錯誤,但WebStorm IDE確實正確捕獲了此錯誤。

為什么TS找不到它,如何解決?

使用ExtJS 4.2和TS 0.9.5.0。

TypeScript編譯器將嘗試基於函數調用來推斷所討論對象的類型(b:Ext.IPanel)。

考慮以下代碼:TypeScript將推斷變量foo是一個字符串,因為getValue()函數的返回值是一個字符串,因此var foo成為一個字符串。

在上面的示例中,this.myFunction(10,52)成功,因為編譯器能夠將Ext.IPanel與數字匹配,從而將b推斷為數字。

class Test {
   constructor() {
      var foo = getValue();
   }
   getValue() {
      return "bar";
   }
}

暫無
暫無

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

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