# 1:运行环境的搭建
学习ts,因为并不可以直接在浏览器看到效果,而且使用tsc编译成js,或者使用tsc --watch等方法都不算方便,考虑到平时使用ts,基本都是在构建工具中,所以首先第一步我们需要创建一个rollup的构建环境来学习ts
为什么选择rollup而不是webpack?
- 因为rollup打包出来的js代码相对更干净纯粹,适合来打包纯js代码
需要配置哪些?
// 首先需要npm init -y // 然后下载rollup typescript等 npm install rollup typescript rollup-plugin-typescipt2 @rollup/plugin-node-resolve rollup-plugin-serve -D // rollup-plugin-typescript2 是帮助在rollup中使用ts // rollup/plugin-node-resolve 是帮助在rollup中使用第三方模块 // rollup-plugin-serve 是帮助在本地启动服务 // 然后需要执行tsc --init 产生一个tsconfig.json,记得将module改成rollup支持的es2015或者esnext
rollup.config.js的简单配置
import ts from 'rollup-plugin-typescript2'; // 解析ts的插件 import {nodeResolve} from '@rollup/plugin-node-resolve'; // 解析第三方模块的插件 import serve from 'rollup-plugin-serve'; // 启动一个本地服务的插件 import path from 'path'; // rollup支持es6写法 export default { input:'src/index.ts', output:{ format:'iife', // 立即执行,表示打包后的结果是一个自执行函数,常用的还有umd主要是为了弄一个全局变量,我们只是为了看到ts转义为js的效果 file: path.resolve(__dirname,'dist/bundle.js'), // 出口文件 sourcemap:true, //根据源码产生映射文件 }, plugins:[ nodeResolve({ // 第三方文件的解析,比如使用各jq等等 extensions:['.js','.ts'] }), ts({ tsconfig:path.resolve(__dirname, 'tsconfig.json') // 表示ts使用哪个配置文件 }), serve({ // 本地开启一个服务实时看到打包后的效果 open:true, openPage:'/public/index.html', contentBase:'', port:8080 }) ] }
修改package.json
"scripts": { "serve": "rollup -c -w" }
# QA
- 什么时候需要标识类型?什么时候不需要?
- 当一个变量没有赋值的时候,默认是any。
- 如果一个变量声明的时候进行了赋值,也就会进行类型推导,那就并不是一定需要标识类型
- 12..toString(),为什么使用两个点?
- 因为js中数字可能带有小数,所以只有一个小数点,js会以为后面是小数,会报错
← 高阶函数和Promise 2:基础类型 →