如题,接手的项目,只能在ts项目中加js。
大佬求助啊!!!!
两种格式只是语法有点差异,js 语法是通用的,可以通过全局函数去传递对象。
没明白。getComponent require import 都不互通
知道了 ,谢谢。
老哥,js怎么调用ts中的方法哈。import Player from “./logic/Player”; 然后呢
在js中调用ts,可以把ts中的方法绑定到windows上,比如windows[“clickFunc”] = function(){***}
在js中调用的话就可以直接用clickFunc调用了,但是语法提示需要自己在.d.ts文件中写描述。
谢谢老哥,不过太麻烦了,已经解决了。
请问怎么调用的
js调用ts,测试结果如下:
//import TSLib = require("./TSLib")// 对应export = TSLib,TSLib为类型,可以new
//var UseTSLib = require(“UseTSLib”); // 对应export = UseTSLib,UseTSLib为类型,可以new
import { UseTSLib } from ‘./UseTSLib’; // 对应export class UseTSLib,UseTSLib为类型,可以new
感觉用import {class name} 的方式更方便与ts交互,老的ts基本不用改动
TSLib.ts代码:
//export default class TSLib{
class TSLib{
public static TAG:string = ‘TS’;
public libname:string = ‘TSLib’;
private name:string = ‘一枚小工TS’;
static arr = true;
public print(){
console.log(this.name);
}
}
// 你可以将ts代码生成CommonJs规范、AMD规范,而这二者的规范无法兼容,
// 所以就有了export =,将二者给统一,以至于让ts支持以上规范。
export = TSLib;
useTSLib.ts代码:
import TSLib = require("./TSLib") //对应export = TSLib
//export default class UseTSLib{
export class UseTSLib{
//class UseTSLib{
public static TAG:string = ‘TS’;
// public libname:string = ‘UseTSLib’;
// private name:string = ‘我的名字是UseTSLib’;
static arr = “这是一个static属性!”;
public callTS(){
// console.log(this.name);
let tsLib = new TSLib;
tsLib.print();
//TSLib.print();
}
}
// 你可以将bai ts 代码生成CommonJs规范、AMD规范,而这du二者的规范中,且无法兼容zhi,
// 所以就有了 export =,将二者给统一,以至于让ts支持以上规范。
//export = UseTSLib;
HelloWorld.js代码:
//var UseTSLib = require(“UseTSLib”); // 对应export = UseTSLib,UseTSLib为类型,可以new
import { UseTSLib } from ‘./UseTSLib’; // 对应export class UseTSLib,UseTSLib为类型,可以new
cc.Class({
extends: cc.Component,
properties: {
label: {
default: null,
type: cc.Label
},
// defaults, set visually when attaching this script to the Canvas
text: 'Hello, World!'
},
// use this for initialization
onLoad: function () {
this.label.string = this.text;
cc.log('ts 调用 js, static TAG=', UseTSLib.TAG, "static att=", UseTSLib.arr);
let useTSlib = new UseTSLib;
if(useTSlib != null){
cc.log('2 ts 调用 js, static TAG=', UseTSLib.TAG, "static att=", UseTSLib.arr);
UseTSLib.TAG = "other tag";
cc.log(useTSlib);
useTSlib.callTS();
cc.log(`libname:${useTSlib.libname}`);
}else{
cc.log('null');
}
},
// called every frame
update: function (dt) {
},
});
mark!