Skip to content
Shimon's BlogShimon's Blog
主页
杂谈
  • 主页
      • 代码笔记
          • 代码学习教程
              • TypeScript 教程
                  • 进阶
                    • 元组
                      • 声明合并
                        • 字符串字面量类型
                          • 简单的例子
                            • 参考
                            • 扩展阅读
                              • 枚举
                                • 泛型
                                  • 类
                                    • 类与接口
                                      • 类型别名
                                    • 如何学习一门计算机语言

                                  字符串字面量类型

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

                                  此页内容
                                  • 简单的例子
                                  • 参考

                                  字符串字面量类型用来约束取值只能是某几个字符串中的一个。

                                  # 简单的例子

                                  type EventNames = "click" | "scroll" | "mousemove";
                                  function handleEvent(ele: Element, event: EventNames) {
                                    // do something
                                  }
                                  
                                  handleEvent(document.getElementById("hello"), "scroll"); // 没问题
                                  handleEvent(document.getElementById("world"), "dbclick"); // 报错,event 不能为 'dbclick'
                                  
                                  // index.ts(7,47): error TS2345: Argument of type '"dbclick"' is not assignable to parameter of type 'EventNames'.
                                  

                                  上例中,我们使用 type 定了一个字符串字面量类型 EventNames,它只能取三种字符串中的一种。

                                  注意,类型别名与字符串字面量类型都是使用 type 进行定义。

                                  # 参考

                                  • Advanced Types # Type Aliasesopen in new window(中文版open in new window)
                                  上次编辑于: 2022/4/19 07:13:07
                                  贡献者: ShimonZhan
                                  上一页
                                  声明合并
                                  下一页
                                  扩展阅读
                                  Copyright © 2021-present Shimon Zhan