TypeScript——基本类型

关于数据类型

  • 原始类型  

let bool: boolean = true;
let num: number = 1;
let str: string = 'i am string';
  • 引用类型 

let arr1: number[] = [1, 2, 3];
let arr2: Array<number | string> = [1, 2, 3, 'q']; // 联合类型数组

// 元组: 定义一个已知元素数量和类型的数组,各元素的类型没必要相同
let tuple: [number, string] = [1, 's']
// tuple.push('a') 容许使用数组的方法添加 可是关于越界的元素没法访问
// 原则其元组上不能够改变,容许 push 应该是一个TypeScript 的一个缺陷

// 函数:需声明参数的类型和返回值类型(一般可省略,由TS推算)
let add = (a:number, b:number) => a + b
let computed: (x: number, y: number) => number // 声明返回值
computed = (a, b) => a + b // 参数名称可不一样

// 对象
let obj1: object = { x: 1, y: 2 }
// obj1.x = 3 // 报错,由于上述声明只定义了obj1为对象,未声明对象下属性的类型
let obj2: {x: number, y:number} = { x: 1, y:2 } // 正肯定义方式
  • 其它类型

// symbol: 含义是具备惟一的值
let s1: symbol = Symbol();
let s2 = Symbol()


// null 和 undefined (官方文档中,这两个类型为其它数据类型的子类型)
let nu: null = null;
let un: undefined = undefined; // undefined不能赋值其它数据类型
// add = null 可设置tsconfig.json中"strictNullChecks": false
// 若想要在严格模式下 可采用联合类型 便可经过类型检查
let mult: number | null | undefined = null;


// void 表示没有任何类型 当一个函数没有返回值时,一般会见到其返回值类型是 void
let noReturn = () => {}


// any 能够赋值为任意类型
// 有时候,咱们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,好比来自用户输入或第三方代码库。
// 这种状况下,咱们不但愿类型检查器对这些值进行检查而是直接让它们经过编译阶段的检查。 那么咱们可使用 any类型来标记这些变量:
let x


// never 永远不会有返回值的类型 例:
// 1.函数抛出异常 就不会有返回值
let error = () => {
    throw new Error('error')
}
// 2.死循环,永远不会有返回
let endless = () => {
    while(true) {}
}
相关文章
相关标签/搜索