React与TypeScript的一些配置相关

  • TypeScript基础补充
    • TypeScript是JavaScript的超集
    • 给原生JavaScript添加静态类型检查
    • 与ES6一样目前还无法被主流浏览器直接读取
  • TypeScript的编译
    • 编译器:ts-loader、awesome-typescript-loader、以及babel-loader(create-react-app脚手架默认的编译器)
    • 编译器配置文件:tsconfig.json
  • tsconfig.json详解
{
	"compilerOptions":{
		"noImplicitAny": false, // 不需要显式地声明变量的类型any
		"target":"es5", // 编译后目标JavaScript版本
		"lib":[ // 编译期间需要的库文件
			"dom", 
			"dom, iterable",
			"esnext"
		],
		"allowJs": true, // 允许混合编译JavaScript文件
		"skipLibCheck": true,// 是否跳过检查库文件,编译器将跳过类型检查,仅检查源代码文件。在这种情况下,您的代码可能会因为缺少类型声明文件而导致编译错误
		// "skipLibCheck": false,// 如果您需要类型声明文件,则建议保留默认设置
		"esModuleInterop": true, // 允许我们使用commonjs的方式import默认文件,import React from 'react'
		// "esModuleInterop": false, // import * as React from 'react',
		"allowSyntheticDefaultImports": true, // 否允许使用默认导出
		"strict": true, // 是否启用一组严格的类型检查选项
		"forceConsistentCasingInFileNames": true, // 是否强制所有文件名具有一致的大小写
		"noFallthroughCasesInSwitch": true, //  它控制着switch语句是否不允许"fall through"(也就是在没有使用"break"语句的情况下,控制流从一个case语句穿过到下一个case语句)
		"module": "esnext", // 配置代码的模块系统,Node.js的CommonJS、ES6标准的esnext、requirejs的AMD
		"moduLeResolution": "node",// 决定了我们编译器的工作方式,“node"和"classic(该选项在2019年12月就已经废弃了)"
		"resolveJsonModule": true, // 是否将导入语句中的.json文件解析为模块,设置为false只能作为文本读取,不能作为模块
		"isolatedModules": true,// 编译器会将每个文件作为单独的模块来使用
		"noEmit": true, // 当发生编译错误的时候,编译器不会生成JavaScript代码
		"jsx":"react" // 允许编译器支持编译react代码
	},
	"include":[
		"src"
	]
}
  • 严格的类型检查包括:

    • “noImplicitAny”: 禁止隐式类型声明;
    • “strictNullChecks”: 禁止把null和undefined赋值给其他类型;
    • “strictFunctionTypes”: 强制函数类型必须匹配声明;
    • “strictBindCallApply”: 禁止使用不正确的"bind","call"和"apply"方法;
    • “strictPropertyInitialization”: 禁止在未初始化的属性上访问。
  • 几个小tips

    • 使用npm run eject可以抛出配置信息,包含一个config文件夹、一个script文件夹,其中config/webpack.config.js是项目的核心配置
    • js项目转ts项目方式
      • npm install --save typescript @types/node @types/react @types/react-dom @types/jest
      • typescript:ts工具集
      • node,react,react-dom,jest并不是原生支持typescript,因此需要安装解释文件(@type/react:react ts 接口定义-也称typing)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值