• ts 总结 二


    1、声明变量:声明变量的类型及初始值
    var name: string = 'zhangsan'
    2、类型断言
    手动指定一个值的类型,允许变量从一种类型更改未另一种类型
    语法:

    <类型>值 // react 中这种不能使用
    // 或者
    值 as 类型
    

    3、类型推断;
    当类型没有给出时,TypeScript 编译器利用类型推断来推断类型。
    4、联合类型
    联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。
    5、数组

    interface namelist { 
       [index:number]:string 
    } 
     
    // 类型一致,正确
    var list2:namelist = ["a","b","c"]
    // 错误元素 1 不是 string 类型
    // var list2:namelist = ["a",1,"c"]
    

    6、对象

    interface ages { 
       [index:string]:number  // 任意值为number的对象类型
    } 
     
    var agelist:ages; 
     // 类型正确 
    agelist["runoob"] = 15  
    
    var Iobj:Child = { v1:12, v2:23} 
    // 等价 var Iobj =<Child>{ v1:12, v2:23} 
    
    • 类型别名: type
    type Text = string | { text: string };
    type Coordinates = [number, number];
    type Callback = (data: string) => void;
    

    7、any 是一种禁用类型检查并有效地允许使用所有类型的类型。将 any 设置为特殊类型 any 将禁用类型检查:

    8、类型: unknown,unknown 与 any 类似,但更安全。TypeScript 将阻止使用 unknown 类型

    9、never 类型:代表从不会出现的值,这意味着声明为 never 类型的变量只能被 never 类型所赋值,在函数中它通常表现为抛出异常或无法执行到终止点(例如无限循环),无论何时定义错误,never 都会有效地抛出错误。很少用

    10、泛型:允许创建 "类型变量",可以用来创建不需要显式定义所使用类型的类、函数和类型别名。泛型使编写可重用代码变得更容易。

    function createPair<S, T>(v1: S, v2: T): [S, T] {
      return [v1, v2];
    }
    console.log(createPair<string, number>('hello', 42)); // ['hello', 42]
    

    11、工具类型:
    TypeScript 附带了大量类型,可以帮助进行一些常见的类型操作,通常称为工具类型(实用类型)。

    本章介绍了最流行的工具类型(Utility Type)。

    • Partial
      Partial 更改对象中的所有属性为可选。
    interface Point {
      x: number;
      y: number;
    }
    let pointPart: Partial<point> = {}; // `Partial` 使得 x 与 y 都变成可选
    pointPart.x = 10;
    
    • Required
      Required 更改对象中的所有属性为必须的。
    interface Car {
      make: string;
      model: string;
      mileage?: number;
    }
    let myCar: Required<car> = {
      make: 'Ford',
      model: 'Focus',
      mileage: 12000 // `Required` 强制 mileage 必须定义
    };
    
    • Record
      Record 是定义具有特定键类型和值类型的对象类型的简写方式。
    const nameAgeMap: Record<string, number=""> = {
      'Alice': 21,
      'Bob': 25
    };
    // Record<string, number> 相当于 { [key: string]: number }
    
    
    • Omit
      Omit 从对象类型中删除 key。
    • Pick
      Pick 从对象类型中删除除指 key 以外的所有 key。
    • Exclude
      Exclude 从联合类型中删除类型。
    • ReturnType
      ReturnType 提取函数类型的返回类型。

    https://cankaoshouce.com/typescript/typescript-utility-types.html
    https://jkchao.github.io/typescript-book-chinese/compiler/scanner.html

    7、拓展接口(对象)

    // 尝试创建一个新的接口并扩展它,如下所示
    interface Rectangle {
      height: number,
       number
    }
    interface ColoredRectangle extends Rectangle {
      color: string
    }
    const coloredRectangle: ColoredRectangle = {
      height: 20,
       10,
      color: "red"
    };
    console.log(coloredRectangle);
    
  • 相关阅读:
    闭包函数与装饰器
    python 函数的参数
    python 函数定义及调用
    python 文件指针及文件覆盖
    phtnon 文件操作
    Volatile 关键字 内存可见性
    UNION 和 UNION ALL 操作符
    设计模式(七)---- 模板方法模式
    设计模式(六)---- 策略模式
    设计模式(五)---- 原型模式
  • 原文地址:https://www.cnblogs.com/Running00/p/16813689.html
Copyright © 2020-2023  润新知