美文网首页我爱编程
typescript语法学习

typescript语法学习

作者: 关玮琳linSir | 来源:发表于2018-04-13 13:20 被阅读98次

typescript语法学习

最近的工作是,node开发,我们团队的技术选型是egg + typescript + typeorm,但是自己js的基础,node的基础,后台的思想,都不是非常的好,打算用这段时间好好补一补。
本文是学习typescript的记录。

背景

typescript是微软开发出来的一门语言,它是js的超集,它的代码可以被编译成js,从而为js的语法添加了静态类型的变量,也使得js可以基于类的面向对象编程。

基础变量类型

变量所有类型

  1. 布尔值
  2. 数字
  3. 字符串
  4. 数组
  5. 元组
  6. 枚举
  7. 任意值
  8. 空值
  9. Null和Undefined
  10. Never
  11. 类型断言(<string>,as string两种方式)

布尔值

let isDone: boolean = false;

数字

let num1: number = 1; //十进制
let num2: number = 0xf00d; //十六进制
let num3: number = 0b1010; //二进制
let num4: number = 0o744; //八进制

字符串

let name: string = "bob";
let name2: string = 'bob';

模版字符串

你还可以使用模版字符串,它可以定义多行文本和内嵌表达式。 这种字符串是被反引号包围( `),并且以${ expr }这种形式嵌入表达式

let name: string = `Gene`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ name }.

I'll be ${ age + 1 } years old next month.`;
这与下面定义sentence的方式效果相同:

let sentence: string = "Hello, my name is " + name + ".\n\n" +
    "I'll be " + (age + 1) + " years old next month.";

数组

let list: number[] = [1,2,3];
let list2: Array<number> = [1,2,3];

元组

let x: [string, number];
x = ['hello', 10]

从此这个元组,就是一个联合类型的了,我们可以往里面赋值,string或者number,其它类型是不可以的。

枚举

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

他们默认情况下是从0开始的,当然我们也可以手动指定数值,例如:

enum Color {Red = 1,Green,Blue}
//查找枚举值的名字,例如:
let colorName: string = Color[2];

任意值

any ,这个类型是指我们不希望检查器对值进行检查。

let a: any = 4;
a = "111";
a = false;
let list: any[] = [1, true, "free"];
list[1] = 100;

变量声明

let和const是typescript中变量声明的方式,const能够阻止对同一个变量再次赋值。

let和var的区别,var可以在同一个作用域内多次声明同一个名称的变量,但是let不可以。

var x = 10;
var x = 20;

let x = 10;
let x = 20;//错误

function sumMatrix(matrix: number[][]) {
    let sum = 0;
    for (let i = 0; i < matrix.length; i++) {
        var currentRow = matrix[i];
        for (let i = 0; i < currentRow.length; i++) {
            sum += currentRow[i];
        }
    }

    return sum;
}

以上的代码,我们是可以得到我们想要的答案的,这个就是let特有的一个屏蔽的功能。不过这样的代码在读起来的时候,可能是有点困难的,所以尽量不要这样做了。

let和const是两种声明变量的方式,用哪个都可以,不过依照最小特权原则,如果我们声明的变量不希望别人改变的时候应当使用const。

解构

解构数组

最简单的解构莫过于数组的解构赋值了:

let input = [1, 2];
let [first, second] = input;
console.log(first); // outputs 1
console.log(second); // outputs 2
let [first, ...rest] = [1, 2, 3, 4];
console.log(first); // outputs 1
console.log(rest); // outputs [ 2, 3, 4 ]

当然,由于是JavaScript, 你可以忽略你不关心的尾随元素:

let [first] = [1, 2, 3, 4];
console.log(first); // outputs 1

或其它元素:

let [, second, , fourth] = [1, 2, 3, 4];

对象解构

let o = {
    a: "foo",
    b: 12,
    c: "bar"
}
let {a, b} = o;

相关文章

网友评论

    本文标题:typescript语法学习

    本文链接:https://www.haomeiwen.com/subject/jieckftx.html