首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >TypeScript >TypeScript 的类型系统是如何工作的?

TypeScript 的类型系统是如何工作的?

词条归属:TypeScript

1. 结构类型系统

  • TypeScript 采用结构类型(Structural Typing),判断类型兼容性时关注的是类型的"形状"(成员属性),而非类型的名称
  • 只要两个类型的成员结构兼容,即使它们来自不同的声明,也可以互相赋值
  • 这与 Java、C# 等语言的名义类型(Nominal Typing)形成对比

2. 类型兼容性规则

  • 赋值和参数传递时,目标类型必须与源类型兼容
  • 对象字面量存在" excess property checking"(多余属性检查),直接赋值时会检查是否存在未声明的属性
  • 函数类型兼容遵循参数逆变、返回值协变的规则

3. 类型注解与类型推断

  • 显式类型注解:通过 : TypeName 语法手动指定类型
  • 类型推断:TypeScript 会根据赋值、上下文等信息自动推导变量类型
  • 两者可以混合使用,推断结果可通过显式注解覆盖

4. 类型检查的严格程度

  • strict 模式:开启所有严格检查选项,包括 noImplicitAny、strictNullChecks、strictFunctionTypes 等
  • 非严格模式:允许隐式 any、允许 null/undefined 赋值给任意类型
  • TypeScript 7.0 起,strict 模式默认开启
相关文章
TypeScript是如何工作的
TypeScript 是一门基于 JavaScript 拓展的语言,它是 JavaScript 的超集,并且给 JavaScript 添加了静态类型检查系统。TypeScript 能让我们在开发时发现程序中类型定义不一致的地方,及时消除隐藏的风险,大大增强了代码的可读性以及可维护性。相信大家对于如何在项目中使用 TypeScript 已经轻车熟路,本文就来探讨简单探讨一下 TypeScript 是如何工作的,以及有哪些工具帮助它实现了这个目标。
ConardLi
2021-09-29
8K0
什么是入侵防御系统?如何工作?有哪些类型?
网络安全在外围和网络之间的多层保护中发挥作用,所有安全层都需要遵循特定的策略,只有经过授权的用户才能访问网络资源,并阻止未经授权的用户执行漏洞利用和进行恶意活动。
网络技术联盟站
2023-03-13
2.2K0
什么是 TypeScript 4.1 中的模板字面类型?
写了这么多年 TypeScript,最大的感触就是它非常易于理解——特别是对于具有 Java 背景的人。 但是,在听说了 TypeScript 4.1(该语言最近的重大更新)的新闻之后,我还是为新鲜的特性感到惊奇。
一只图雀
2021-01-05
5.4K0
TypeScript中的类型
基本类型布尔类型 (boolean)布尔类型表示一个值为真或假的逻辑值。let isDone: boolean = false;数字类型 (number)数字类型表示整数或浮点数。let count: number = 10;let price: number = 3.99;字符串类型 (string)字符串类型表示一串字符。let message: string = "Hello, TypeScript!";数组类型 (array)数组类型表示一个元素的集合。let numbers: number[] =
堕落飞鸟
2023-05-22
4.3K0
TypeScript函数的类型
函数声明 在 JavaScript 中,有两种常见的定义函数的方式——函数声明(Function Declaration)和函数表达式(Function Expression): 函数声明(Function Declaration)
conanma
2021-12-07
3.6K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券