作者回复: 第一种写法是将所有用export导出的成员绑定在React上,导入后用React.xxx访问;第二种仅是导出默认的(export default)
作者回复: 背景:很多库使用了 CommonJS 的导出方式,如 module.exports=a,这样会导致使用ES的方式导入时失败,如 import a from 'X'。因为ES会默认访问 a 的 default 属性。TypeScript 为了兼容,引入了 esModuleInterop 选项,在编辑时自动添加default属性。 用法:当 module 指定为 commonjs 时,设置 esModuleInterop 为 true 即可。
作者回复: 文件中只要有 import 或 export ,这个文件就是一个模块
作者回复: 课程在这里有处遗漏,说明一下: 在命令行中指定了 target 为 es6,tsc 就会默认使用 Classic 模块解析策略,这个策略对于 import * as t from "@babel/types"; 这种非相对路径的导入,不能正确解析。 解决方法就是指定解析策略为 Node,比如: tsc ./a.ts -t es6 --moduleResolution node 关于解析策略,详见第27讲。
作者回复: 这里的对象是指 {b, c} ,即 {b: b, c: c},没有问题
作者回复: 这节课运行的是 ts-base 工程,需要先全局安装ts-node,并不会依赖babel啊
作者回复: 我很想回答你,但为什么不自己手动试一下呢:),这样理解才深刻,然后遇到问题再来问。
作者回复: 是的,多谢指正
作者回复: esModuleInterop 没有被取消,重新安装一下试试: npm uninstall -g typescript npm install -g typescript npm install --save-dev typescript
作者回复: 嗯,命令行中 target为es3/5,module默认为commonjs