杀手级的TypeScript功能:const断言[每日前端夜话0x6F]
每日前端夜话 0x6F 每日前端夜话,陪你聊前端。 每天晚上18:00准时推送。 正文共:1916 字 预计阅读时间: 6 分钟 翻译:疯狂的技术宅 来源: logrocket 我发现官方的 TypeScript 文档非常有用,但是总觉得有点过于学术化并且枯燥无味。每当我发现一个新功能时,我想要知道这个功能究竟能够解决什么问题而不是长篇大论。 在我看来, const assertions 是 TypeScript 3.4 的杀手级新功能,正如我稍后将要解释的,我们可以用这个新功能省略很多繁琐的类型声明。 const 断言 1 const x = { text: "hello" } as const; 官方文档中给出了这样的解释: TypeScript 3.4 引入了一个名为 const 断言的字面值的新构造。它的语法是一个类型断言,用 const 代替类型名称(例如 123 as const )断言构造新的文字表达式时,我们可以向语言发出以下信号: 该表达式中的字面类型不应被扩展(例如:不能从“hello”转换为字符串) 对象字面量获取只读属性 数组文字成为只读元组 感觉有点枯燥,还有点混乱。让我们来各个击破。 没有类型扩展的字面类型 并不是每个人都知道类型扩展,并且由于某些意外行为而首次发现它时都会觉得意外。 当我们使用关键字 const 声明一个字面量时,类型是等号右边的文字