文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
TypeScript
TS 优点和缺点,适用场景是什么
优点:
- 静态类型检查,编译时报错
- 智能提示,提高开发效率和稳定性
缺点:
- 有一定学习成本
- 应用不规范,“anyscript”
适用场景:
- 大型项目、业务复杂、维护人员多
- 逻辑性较强的代码,需要类型更稳固
TS 基础类型有哪些
- boolean
- number
- string
- null
- undefined
- symbol
- 数组 Array
- 元组 Tuple
- 枚举 enum
- interface
any void unknown never 的区别
- any:不进行类型检查
- void:函数没有显式返回一个值
- unknown:未知类型(有类型检查)
- never:永远不存在的类型
TS 的访问修饰符有哪几个
- public - 全部可访问
- private - 只有自己可访问
- protected - 自己和派生类可访问
TS 私有属性 # 和 private 有什么区别
- 私有属性,不能在构造函数的参数中定义
- private 属性,可以通过 as any 强制获取,但私有属性不行
type 和 interface 的区别,以及使用场景
共同点:
- 都可以描述一个对象结构
- 都可以被 class 实现
- 都可以被扩展
不同点:
- type 可以声明基础类型
- type 可以使用联合类型(或)、交叉类型(合并)
- type 可以通过 typeof、keyof 等赋值
TS 中交叉类型和联合类型是什么
交叉类型:
- 多个类型合并为一个类型 T1 & T2 & T3
- 如果属性类型冲突了,则属性类型为 never
- 基础类型无法交叉,会返回 never
联合类型:
- 联合多个类型 T1 | T2 | T3
- 一种 “或” 的关系
- 基础类型可以联合
TS 中有哪些特殊符号,分别是什么意思
- ?:可选
- ?.:可选链
- ??:空值合并运算符
- !:非空断言操作符
- _:数字分隔符
TS 常见工具类型有哪些
- Partial
- Required
- Pick<t, k=""></t,>
- Omit<t, k=""></t,>
- Readonly
如何扩展 window 属性
// interface 合并声明
declare interface Window {
test: string;
}
window.test = "xxx";
TS 如何处理第三方模块的类型
- 常见的第三方插件,都有
@types/xxx
包,安装即可使用 - 外部模块,可通过 declare module
- 内部模块,可通过 namespace 命名空间
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论