小白提问TypeScript的写法(VSCode编辑器)

最近在做项目的TS升级,发现有些位置不知道怎么修改,才能去掉下划线,特来问问各位大神(请原谅我一个重度IDE依赖症和强迫症患者):

  1. 我项目中i18n插件的安装方式是全局的,在项目目录下没有对应的插件脚本,如果想要使用这个插件,在ts文件中应该如何引入?目前我的写法是

import * as i18n from ‘/Users/XXXXXX/.CocosCreator/packages/i18n-master/runtime-scripts/LanguageData’;

如果不想出现警告的话,是不是只能这样写?

2.TS可以动态的加载js文件么?我的工具类中,有个静态方法,用于根据指定的语言动态加载对应的i18n配置文件

static changeLanguage(language : string) : void{
     MCCUtils.curLanguage = language;
     require(MCCUtils.curLanguage); //这里也会有编译警告,可以的话,怎么写才能去掉警告?
     i18n.init(language);
}

3.以前直接这样写是没问题的

canvas.designResolution = cc.size(2048, 1536);

改成TS后,会提示警告(Cannot invoke an expression whose type lacks a call signature. Type ‘Size’ has no compatible call signatures.),这个有其他的api替代么?

4.cc.audioEngine.preload ( filePath callback )的callback要怎么写?直接采用js的匿名函数也是会出现警告

//function这提示Argument of type ‘() => void’ is not assignable to parameter of type ‘void’.
cc.audioEngine.preload(_me.audio, function () {
        //do something;
});

唉,强迫症患者伤不起啊。。。。。。。

手动顶~~~~

我寫typescript也卡在用i18n這邊了, 都沒人能幫下的嗎?

1、 i18n参考:
https://github.com/toddlxt/Creator-TypeScript-Boilerplate/tree/master/typescript/libs/i18n
2、 require去除报错需要在ts中声明,参考下面这个声明文件最后一行:
https://github.com/toddlxt/Creator-TypeScript-Boilerplate/blob/master/typescript/types/GlobalNameSpace.d.ts
3、4、 cc.size报错和cc.audioEngine.preload都是最新测试版creator.d.ts的声明问题,下版本修复后更新一下creator.d.ts即可,目前可暂时忽视,不影响运行。

1赞

噢,tod大神出现了,谢大神解惑~~~~~:2::2::2::2::2:

:smile:Todd

好的,好的,我记住了~~~~~~