TypeScript 与 JavaScript
背景:TypeScript 起源于使用JavaScript开发的大型项目 。由于JavaScript语言本身的局限性,难以胜任和维护大型项目开发。因此微软开发了TypeScript ,使得其能够胜任开发大型项目。
Typescript是JavaScript的 类型化超集,它支持所有JavaScript的语法,我们可以在ts中使用原生js语法
JS,属于动态类型语言在运行时才知道错误
TS,静态类型语言在编译时就会知道错误
TS是强类型语言,需要强制转换类型
JS是弱类型,会根据环境变化自动转换类型
不过ts最终还是需要编译成js(es5)来运行
never:
never
类型表示的是那些永不存在的值的类型。 例如, never
类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;
变量也可能是 never
类型,当它们被永不为真的类型保护所约束时。
never
类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never
的子类型或可以赋值给never
类型(除了never
本身之外)。 即使 any
也不可以赋值给never
。
never只在下面两种情况使用(不能被顺利完成执行,或者发生中断(抛异常))
- 函数永远不会有返回值时,例如 while(true){}
const [n,setN] = React.useState<number>(1)
const add: ()=>never = () => {
while(true){ setN(i=>i+1) }
}
- 函数永远会抛出一个错误时。
const fn: ()=>never = () => {
throw new Error('error')
}
- 与void的差异
void 和 never 都是表示一个函数没有返回值,但是他们之间最大的区别是,void 表示可以被赋值的类型,never表示其他任何类型也不能被赋值给它,它只能是never
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!