[Typescript] Specify Exact Values with TypeScript’s Literal Types

A literal type is a type that represents exactly one value, e.g. one specific string or number. You can combine literal types with union types to model a finite set of valid values for a variable. In this lesson, we explore the all kinds of literal types in TypeScript:

  • String literal types
  • Numeric literal types
  • Boolean literal types
  • Enum literal types

First String literal types:

let autoComplete: "on" | "off" | "ON" | "OFF";
autoComplete = "On" // case sensitive, compiler error

Number literal types:

type NumberBase = 2 | 8 |10 | 16;
let base: NumberBase;
base = 2;
base = 4; // error 

Boolean literal types:

let autoFocus: true = true;
autoFocus = false; // error

Enum literal types:

enum Protocols {
    HTTP,
    HTTPS,
    FTP
}

type HyperTextProtocol = Protocols.HTTP | Protocols.HTTPS;

let protocol: HyperTextProtocol;
protocol = Protocols.HTTP;
protocol = Protocols.HTTPS;
protocol = Protocols.FTP; // error

原文地址:https://www.cnblogs.com/Answer1215/p/9676021.html

时间: 2024-10-30 16:34:38

[Typescript] Specify Exact Values with TypeScript’s Literal Types的相关文章

[Typescript] Introduction to Generics in Typescript

If Typescript is the first language in which you've encountered generics, the concept can be quite difficult to understand. We skip the lecture in this lesson and dive straight into a real-world use-case that is guaranteed to help you understand the

[TypeScript] Overload a Function with TypeScript’s Overload Signatures

Some functions may have different return types depending on the types of the arguments with which they’re invoked. Using TypeScript’s function overloads, you can create an overload for each allowed combination of parameter and return types. This way,

精确搜索和全文字搜索(exact values vs. full text)

ES中的数据可以广义的分为两种类型:精确值和全文值 精确值就是想他们本来的意思一样存储.例如,date或者用户ID,可以作为精确的string类型进行存储,就像一个用户名或邮箱地址一样,精确的值"Foo"和精确值"foo"是不同的,精确值2014和精确值2014-09-15也是不同的. 全文字,也就是和文本数据--常常使用人类语言进行存储,就像是tweet中的texti或邮件的消息体. full text常常是"未结构化的数据",这样说有点不合适

使用TypeScript拓展你自己的VSCode

转自:http://www.iplaysoft.com/brackets.html使用TypeScript拓展你自己的VSCode! 0x00 前言在前几天的美国纽约,微软举行了Connect(); //2015大会.通过这次大会,我们可以很高兴的看到微软的确变得更加开放也更加务实了.当然,会上放出了不少新产品和新功能,其中就包括了VS Code的beta版本.而且微软更进一步,已经在github将VS Code的代码开源了.除了这些让人兴奋的消息,我们还应该注意到VS Code提供了对拓展的支

TypeScript和JavaScript哪种语言更先进

TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScript技术栈不断的向世界证明自己的价值.JavaScript代码越写越大,众所周知,JavaScript是一门动态语言,缺少静态类型检查,这样就很难在编译阶段排除更多的问题,当然,这就是动态语言的魅力所在,运行时动态处理类型,在我们写代码的时候就可以很更灵活.为了给JavaScript增加类型检查以

[TypeScript] Catch unsafe use of "this" in TypeScript functions

this is probably the most tricky thing to use in JavaScript and therefore TypeScript. Fortunately there is a TypeScript compiler flag noImplicit this that can help catch unsafe usages so beginners don't get caught off guard. // tsconfig.json { "compi

TypeScript -- 面向对象特性

面向对象特性 一.类(class)--TypeScript的核心,使用TypeScript开发时,在部分代码都是写在类里面的. 1.class关键字和类名就可以定义一个类 . 类的访问控制符--有三个,public,private,protected class Person { public name;//public(公有的)访问控制符,其为默认的private eat() {//private为私有的访问打控制符console.log('im eating'); } protected a

使用TypeScript开发

学习过一段时间CoffeeScript,然后再学习TypeScript,最后还是决定使用TypeScript开发. CofeeScript主要是给js添加一些语法糖,编写代码要快捷的多,少量的代码开发确实要方便的多 而TypeScript完全兼容js,提供类型检查,代码输入提示,这点我比较看重,再也不会因为打错变量名而出现 一些莫名其妙的错误调试半天,可以通过代码导航快速找到类,函数的代码 不好的一点是引用库文件需要提供d.ts文件,幸好大部分常用库如jquery,anguluarjs都有了,直

TypeScript之基本数据类型

前言 最近项目很急,所以没有什么时间回答关于Xamarin.Android方面的问题,也有一段时间没有更新.主要是手头很缺人,如果有谁有兴趣加入我们的话,可以私聊我,这样我就能继续造福社区了,同时还有很多的好的库我也可以开源(兼容MvvmCross).下面就我学习TypeScript. 工具 大家可以使用VS2013/2015,VS2012可以安装对应的插件,我们直接新建(带TypeScript的HTML应用程序),并在app.ts中进行开发,如果读者想查看对应生成的js代码可以到项目目录下查看