创作背景
在原有代码的javascript中,我们只能直接写js,由于js是个弱类型语言,所以在之后的ecma中生成了javascript超集——typescript。由于在使用typescript时,需要其后缀名为ts,如果直接修改,则会引发所有原js文件的报错。那我们该怎么办呢?在既要使用typescript这种超集的优势,又不能破坏原来的js文件。
一、javascript 与typescript的区别
Javascript是能在网页运行的脚本语言。我们所有需要在网页运行的脚本都会编译成Javascript,而且它是一门弱类型语言类型,无法在编译环节进行静态类型校验。在书写的时候,那是非常的棒👍👍👍👍👍,对于程序员的那是大大给力,但是由于这种特性的存在,可能在引用的使用会有不同的类型的传参存在,致使在使用的时候,会出现不必要的错误❌❌❌❌❌。为了解决这个问题,那就得使用到Flow,Flow由Facebook推出,官网是 https://flow.org/。
后期出现的Typescript,与Flow有些类似,但TypeScript其实像是另一门新语言。typescript更加贴合书写,它将JavaScript的基础数据类型(string,undefined,number, null, boolean)融合起来。直接在定义时加入类型,而且typescript提供了类型推断。
二、使用.d.ts不破坏原js文件
为了创建.d.ts文件,需要做以下4点。
- 添加Typescript到你的开发依赖(devDependencies)
- 添加一个 tsconfig.json 文件
- 启动Typescript编译生成.d.ts从JS文件
npx -p typescript tsc src/**/*.js --declaration --allowJs --emitDeclarationOnly --outDir types
- (Optional) 在package.json来指明类型引用