【TypeScript】知识点梳理(四)
#没事去翻翻官网文档,其实有很多用法是我们还不知道的,官方资料总是最权威的,也推荐大家无聊看看各个官网hhh,不一定是记忆,但在某种场景下我们或许能想到还有多一种解决方式#
noImplicitAny
当我们没有表明类型时,默认就是any,该选项是用于控制隐式any类型的使用
- 当设置为
true
时,编译器会禁止未显式声明类型的变量/参数隐式推断为any
类型,并抛出错误 - 显式声明
any
(如let x: any
)仍被允许
// tsconfig.json配置示例
{"compilerOptions": {"noImplicitAny": true, // 开启严格检查"strict": true // 该选项会同时启用noImplicitAll}
}
- 优点:提升代码健壮性,减少类型相关运行时错误
- 缺点:增加类型声明工作量,降低开发灵活性
strictNullChecks
用于控制空值检查的核心编译选项,主要影响null和undefined的类型处理逻辑
- 关闭(默认):
null
和undefined
可赋值给任意类型(视为所有类型的子类型) - 开启:
null
和undefined
仅能赋值给自身类型、any
或显式联合类型(如string | null
)
{"compilerOptions": {"strictNullChecks": true,}
}
- 优点:减少空指针错误,提升代码健壮性
- 缺点:需显式处理边界情况,增加类型声明复杂度,降低开发灵活性