Typescript:基础类型

【摘要】本篇文章主要介绍Typescript的基础类型以及声明方法。

- Boolean

let isDone:boolean = false;

- Number

let decimal: number = 6; 
let hex: number = 0xf00d; 
let binary: number = 0b1010; 
let octal: number = 0o744;

- String

let color:string = "blue";

// 声明模板字符串(template strings)使用反引号(`)包围字符串内容,嵌入表达式使用 ${expr} 形式
let sentence: string = `Hello, my name is ${ fullName }. I'll be ${ age + 1 } years old next month.`;

- Array

// 第一种声明方式
let list: number[] = [1, 2, 3];
let color: string[] = ['red', 'green', 'blue'];

// 第二种声明方式
let list: Array<number> = [1, 2, 3];
let color: Array<string> = ['red', 'green', 'blue'];

- Tuple

let x: [string, number] = ['age', 18];

- Enum

enum Color {Red, Green, Blue}
let c: Color = Color.Green;

// 默认情况下,枚举类型(enum)索引从0开始,你也可以给它们指定索引从1开始
enum Color {Red = 1, Green, Blue}
let c: Color = Color[2]; // Green

// 或者指定索引
enum Color {Red = 1, Green = 2, Blue = 4}
let c: Color = Color[4]; // Blue

- Any

Typescript 的类型机制是为了防止赋值类型与声明的类型不同,但是any类型却是打破这种规则的存在

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;

- Void

void 类型经常被用于没有 return 值的方法,声明 void 类型的变量只能给它们赋值 undefined 或 null

function warnUser(): void {
    alert("This is my warning message");
}

- Null and Undefined
默认情况下,null 和 undifined 可以指定给所有类型,但是在 –strictNullChecks 模式下,null 和 undifined 只能指定给 void 及其本身类型

let u: undefined = undefined;
let n: null = null;

- Never
never类型表示的是那些永不存在的值的类型。never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never。

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}

- Object

declare function create(o: object): void;
create({ prop: 0 }); 

- 类型断言(Type assertions)
当你知道一个实体具有比它现有类型更确切的类型时,可以通过类型断言(Type assertions)的方式告诉编译器某个实体的具体类型。类型断言(Type assertions)好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。 它没有运行时的影响,只是在编译阶段起作用。

// 第一种使用 尖括号(<>) 的方式
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;

// 第二种使用 as 的方式
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

在TypeScript里使用JSX时,只有 as语法断言是被允许的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值