ts 與 js 的呼叫
源自網路:
ts 是 js 的超集,因此只要是 js 與 js 可以互相呼叫的,ts 均可以呼叫,只不過需要增加宣告來解決編譯時報錯。
ts 最終生成的檔案為 js,因此 js 呼叫 ts 其實就是 js 呼叫 js(ts 生成的 js 檔案)。
ts 呼叫 js
步驟
找到 js 呼叫 js 的方法。
增加方法呼叫的宣告。 請參考如何生成 .d.ts。
示例
js 內的方法
functioncallJsFunc(msg){
console.log("msg from egret : "+msg);
}
ts 內宣告
declare functioncall JsFunc(msg:string);//可以放在 ts 檔案內(建議在頂部或者底部,中間的沒試過)或者單獨放到一個 .d.ts 檔案中,請不要放在其他型別的檔案內。msg 型別根據函式體判斷。
ts 內呼叫
callJsFunc("hello js");
輸出
msg frome gret:hello js
總結:在 js 呼叫 js 的基礎上增加宣告。其他的比如變數等,也是按上面步驟來實現。
js 呼叫 ts
js 呼叫 ts 其實就是 ts 呼叫 ts,由於 ts 呼叫 ts 可能會有同模組下的省略寫法,因此只要使用不同模組下的呼叫來寫即可。
步驟
找到非同一模組下 ts 的呼叫(比如example.A.CallEgretFunc("hello"))。
完全按上面呼叫的方式來寫 (比如上面的example.A.CallEgretFunc("hello"))。
示例
ts 內的方法
moduleexampleA{
exportclassA{
publiccallEgretMethod(msg:string):void{
console.log("method msg from js : "+msg);
}
publicstaticCallEgretFunc(msg:string):void{
console.log("static msg from js : "+msg);
}
}
}
非同一模組下 ts 呼叫
moduleexampleB{
exportfunctionb(){
//呼叫方法
vara:exampleA.A=newexampleA.A();
a.callEgretMethod("method");
//呼叫靜態函式
exampleA.A.CallEgretFunc("function");
}
}
js 內呼叫
vara=newexampleA.A();//去掉 a 的型別
a.callEgretMethod("method");
exampleA.A.CallEgretFunc("function");
輸出
method msgfromjs:method
staticmsgfromjs:function
總結:相當於非同一個模組下的 ts 呼叫 ts。其他的比如變數等,也是按上面步驟來實現。
相關文章
- js呼叫ts,親測。JS
- vue中 lang="ts"與js的區別VueJS
- H5App混合開發JS或TS呼叫原生方法H5APPJS
- JS函式的定義與呼叫方法JS函式
- C#和TS/JS的對比學習02:函式與方法C#JS函式
- qt呼叫js,js呼叫qtQTJS
- JS/TS 的 import 和 export 用法小結JSImportExport
- JS/TS專案裡的Module都是什麼?JS
- JS引擎、執行時與呼叫棧概述JS
- iOS下JS與OC互相呼叫(四)--JavaScriptCoreiOSJSJavaScript
- js 呼叫棧機制與ES6尾呼叫優化介紹JS優化
- iOS下JS與原生OC互相呼叫(總結)iOSJS
- iOS下JS與OC互相呼叫(三)--MessageHandleriOSJS
- 關於js中的this呼叫JS
- TS基礎應用 & Hook中的TSHook
- iOS下JS與OC互相呼叫(五)--UIWebView + WebViewJavascriptBridgeiOSJSUIWebViewJavaScript
- iOS下JS與OC互相呼叫(六)--WKWebView + WebViewJavascriptBridgeiOSJSWebViewJavaScript
- iOS下JS與OC互相呼叫(七)--Cordova 基礎iOSJS
- @ts-check 立即上手,JSDoc 新增型別JS型別
- jsp呼叫ocxJS
- js 呼叫 WebService 方法JSWeb
- C#呼叫js庫的方法C#JS
- iOS下JS與OC互相呼叫(一)--UIWebView 攔截URLiOSJSUIWebView
- iOS下JS與OC互相呼叫(二)--WKWebView 攔截URLiOSJSWebView
- SM$TS_USED,SM$TS_FREE,SM$TS_AVAILAI
- Dart 入門 & 與 ts 型別系統的異同Dart型別
- Javascript的函式呼叫與thisJavaScript函式
- JS的五種函式呼叫方式JS函式
- 外部js呼叫vue的methods中的方法JSVue
- iOS下JS與OC互相呼叫(八)--Cordova詳解+實戰iOSJS
- UpdatePanel完成後呼叫jsJS
- ts + hooks 的基本使用Hook
- ts 中的型別型別
- TS 介面
- TS — 介面
- 如何處理vue-cli3+ts+element-ui 呼叫$message/$alert時的編譯報錯VueUI編譯
- 一段js理解nodejs中js如果呼叫c++/c的NodeJSC++
- es6關於class在js和ts中的的一些理解JS