1. TS概述
leezozz 1/27/2023 ts
# TypeScript概述
TypeScript:JavaScript的超集(扩展集)。是由微软开发并维护的一门编程语言。它的目的是启用强类型来增强 JavaScript 在大型应用的开发能力。
TypeScript包含:JavaScript、类型系统、es6。最终会被编译为JavaScript
# TS 和 JS的区别是什么?
- TypeScript = Type + JavaScript(在 JS 基础之上,添加了类型支持)
- JS是脚本语言,不需要编译,直接在运行环境运行。(JS没有编译环节) 从编程语言的动静来区分:
- TypeScript 属于静态类型的编程语言,编译期做类型检查
- JavaScript 属于动态类型的编程语言,执行期做类型检查
静态类型语言: 一个变量声明时类型就是明确的,声明过后,他的类型就不允许再被修改了 动态类型语言: 运行阶段才能明确变量的类型,变量的类型可以随时发生改变
强类型的优势:
- 错误会更早暴露
- 代码更智能,编码更准确
- 重构更可靠
- 减少不必要的类型判断
弱类型的问题 (1) 在运行阶段才能发现代码的异常
const obj = {}
obj.foo() // 这里会在运行时报错
1
2
2
(2) 函数参数的类型没有收到限制,类型不明确可能造成函数功能发生改变
function sum(a, b) {
return a + b
}
console.log(sum(1, 2)) // 3
console.log(sum(1, '001')) // 1001
1
2
3
4
5
2
3
4
5
(3) 对象属性名自动转换为字符串,对对象索引器错误的用法
const obj = {}
obj[true] = 100
console.log(obj['true']) // 100
1
2
3
2
3