Skip to content
Shimon's BlogShimon's Blog
主页
杂谈
  • 主页
      • 代码笔记
          • 代码学习教程
              • TypeScript 教程
                  • 基础
                    • 任意值
                      • 内置对象
                        • 函数的类型
                          • 原始数据类型
                            • 声明文件
                              • 对象的类型——接口
                                • 数组的类型
                                  • 类型推论
                                    • 什么是类型推论
                                      • 参考
                                      • 类型断言
                                        • 联合类型
                                      • 如何学习一门计算机语言

                                    类型推论

                                    Shimon Zhan2022年4月19日
                                    • TypeScript
                                    小于 1 分钟

                                    此页内容
                                    • 什么是类型推论
                                    • 参考

                                    如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。

                                    # 什么是类型推论

                                    以下代码虽然没有指定类型,但是会在编译的时候报错:

                                    let myFavoriteNumber = "seven";
                                    myFavoriteNumber = 7;
                                    
                                    // index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.
                                    

                                    事实上,它等价于:

                                    let myFavoriteNumber: string = "seven";
                                    myFavoriteNumber = 7;
                                    
                                    // index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.
                                    

                                    TypeScript 会在没有明确的指定类型的时候推测出一个类型,这就是类型推论。

                                    如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查:

                                    let myFavoriteNumber;
                                    myFavoriteNumber = "seven";
                                    myFavoriteNumber = 7;
                                    

                                    # 参考

                                    • Type Inferenceopen in new window(中文版open in new window)
                                    上次编辑于: 2022/4/19 07:13:07
                                    贡献者: ShimonZhan
                                    上一页
                                    数组的类型
                                    下一页
                                    类型断言
                                    Copyright © 2021-present Shimon Zhan