我在Chromium Embedit框架(CEF)中使用打字稿。打字稿,調用不知道TS的函數會導致紅色下劃線
現在我正在做的是我註冊C#對象並從Javascript調用它,在我的解決方案中打字。
我面臨的問題是,因爲功能和此對象不存在於TypeScript調用此函數是紅色下劃線。
我可以通過某種方式消除此調用的下劃線嗎?這種下劃線導致忽略錯誤,這不是我們想要的。
我在Chromium Embedit框架(CEF)中使用打字稿。打字稿,調用不知道TS的函數會導致紅色下劃線
現在我正在做的是我註冊C#對象並從Javascript調用它,在我的解決方案中打字。
我面臨的問題是,因爲功能和此對象不存在於TypeScript調用此函數是紅色下劃線。
我可以通過某種方式消除此調用的下劃線嗎?這種下劃線導致忽略錯誤,這不是我們想要的。
現在我面對的問題是,由於功能與此對象不打字稿存在調用這個函數是紅色下劃線
你可以聲明在聲明文件中的任何全局/外部變量( .d.ts
文件)。
如mylib.d.ts
declare var awesome:any;
用法theapp.ts
:
awesome(); // No error!
PS:你可以在打字稿這裏https://basarat.gitbooks.io/typescript/content/docs/types/ambient/intro.html
TY,這個工程!我面臨更多問題。我正在檢查某些元素的輸入類型,即fe複選框。現在我確定我有元素是複選框,所以這個元素應該檢查屬性。但是,如果我只是簡單地執行'element.checked'而不是它正在工作,但是選中了紅色下劃線。我認爲我只需要從'HTMLElement'重新輸入類似CheckboxElement的東西,但是沒有找到適合這種轉換的東西。如何擺脫這一點?我也面臨這種情況下'element.value' –
任何想法如何處理? –
閱讀更多關於環境溫度是我會這樣說 - 有an example in the playground
首先問題
// plain object
var obj = {};
// TS is doing the best for us.
// it informs about the issues related to
// unknown properties and methods on a type <any>
obj.Result = obj.ReLoad(obj.IdProperty);
介紹接口
module MyNamespace {
export interface IObject {
IdProperty: number;
Result: string;
ReLoad: (id: number) => string;
}
}
和解決方案:
// I. Declare type, and implement interface
// if we can declare a type
var obj1: MyNamespace.IObject;
// and later create or get that object
export class MyObj implements MyNamespace.IObject{
IdProperty: number;
Result: string;
ReLoad = (id: number) => {return id.toString()};
}
// now we get the implementation
obj1 = new MyObj();
// TS knows what could do with the obj2
// of type
obj1.Result = obj1.ReLoad(obj1.IdProperty);
// II. ASSERT - let TS know what is the type behind
// Assert - say to TS:
// I know that this object is of the expected type
var obj2 = <MyNamespace.IObject>obj;
// now TS is happy to trust that tese properties exist
obj2.Result = obj2.ReLoad(obj2.IdProperty);
檢查它here
您可以創建自己的絕對類型化(.d.ts)文件將包含您的類的接口或只是將您的對象投到任何 –