• typeScript--[数据定义]


    一.安装ts

    1.命令行运行如下命令,全局安装 TypeScript:

    npm install -g typescript
    

    2.安装完成后,在控制台运行如下命令,检查安装是否成功

    tsc -V 
    

    二.创建ts文件

    1.创建一个day01.ts文件,随便在里面码一点代码:

    console.log("hello ts")

    2.在命令行上,运行 TypeScript 编译器(手动编译为js文件):

    tsc day01.ts
    

    输出结果为一个 day01.js 文件,它包含了和输入文件中相同的 JavsScript 代码。

    3.在命令行上,通过 Node.js 运行这段代码:

    node day01.js

    控制台会打印出来

    hello ts

    4.vscode自动编译ts文件

    1. 1. 生成配置文件tsconfig.json
    2. tsc --init
    3. 2. 修改tsconfig.json配置
    4. "outDir": "./js", //输出文件到当前文件下的js文件夹
    5. "strict": false,
    6. 3. 启动监视任务:
    7. 终端 -> 运行任务 -> 监视tsconfig.json

    三.基本类型的定义规范

    1.基础语法:

    首先在 TS 中,创建变量时,var、let、const 还是和 JS 中的使用方式一样,但是,在声明变量时需要约束变量的数据类型:

    var 变量名: 类型 = 值;
    

    2.基本定义示例:

    1. var a:number = 1
    2. var b:string = "hello"
    3. var c:boolean = true
    4. var d:undefined = undefined
    5. var e:null = null

    3.void

    void 在 TS 中用来表示没有任何数据类型。通常,当一个函数没有返回值的时候,我们会将返回值的类型设置为 void,如果return了一个返回值会报错。

    例如定义一个函数没有返回值:

    1. function f(): void {
    2. console.log(123)
    3. }

    4.any

    any 在 TS 中用来表示任意数据类型。通常,只有当值来自于一些动态的内容,我们在一开始确定不了值的类型,可以选择使用 any。其他情况下都不推荐使用 any:

    1. var g: any = "hello"
    2. g = 123
    3. g = null

    5.array

    TS 中要求数组中的每一项必须是同一个数据类型。

    1. var h: number[] = [1, 2, 3]
    2. var i: Array<number> = [1,2,3] //定义的数组里只能存在number类型的数据
    3. //Array = ["1","2","3"] //只能存在string类型的数据
    4. var j: Array<any> = ["1", 2, true] //如果存在不同类型推荐使用 any

    6.元组

    元组中,允许一个数组中保存多个类型的数据。

    但是,要求数组中的值与元组类型必须:数量要对应、位置要对应、类型要对应。

    var k: [number, string] = [1, "hello"]

    7.object

     TS 中定义对象时,需要定义出对象中有哪些属性,每一个属性的值是什么类型。

    1. var l: { id: number, name: string } = {
    2. id: 1,
    3. name: "逍遥的码农"
    4. }

    8.enum枚举

    1. enum num {
    2. one,
    3. two,
    4. three
    5. }
    6. var m:num = num.one
    7. console.log(m) //0

    这里会输出0,因为枚举不赋值会取下标

    赋值情况下看一下

    1. enum num {
    2. one,
    3. two = 5,
    4. three
    5. }
    6. var m:num = num.three
    7. console.log(m) //6

    这里会输出6,这里会递增

    (1)普通枚举(编译js会生成对应的代码)

    1. //ts代码
    2. enum num {
    3. one,
    4. two = 5,
    5. three
    6. }
    7. var m:num = num.three
    8. console.log(m)
    9. //js代码
    10. // var num;
    11. // (function (num) {
    12. // num[num["one"] = 0] = "one";
    13. // num[num["two"] = 5] = "two";
    14. // num[num["three"] = 6] = "three";
    15. // })(num || (num = {}));
    16. // var m = num.three;
    17. // console.log(m);

    (2)常量枚举(编译后不会产生多余的代码)

    1. //ts代码
    2. const enum num {
    3. one,
    4. two = 5,
    5. three
    6. }
    7. var m:num = num.three
    8. console.log(m)
    9. //js代码
    10. // var m = 6 /* num.three */;

    可以看到就编译了一行

    9.never

    never类型表示永远不会有值的一种类型。

    1. // 返回never的函数必须存在无法达到的终点
    2. // 因为总是抛出异常,所以 error 将不会有返回值
    3. function error(message: string): never {
    4. throw new Error(message);
    5. }
    6. // 因为存在死循环,所以 infiniteLoop 将不会有返回值
    7. function infiniteLoop(): never {
    8. while (true) {
    9. }
    10. }

  • 相关阅读:
    C++ 迷宫问题
    TeeChart NET for Blazor v2022
    MAE
    写了6年SQL,推荐快速上手MySQL 的SQL语句
    linux CentOs 安装docker 推荐生产环境使用
    使用 Docker 部署 moments 微信朋友圈
    人工智能是否有风险
    OceanBase 首席科学家阳振坤博士入选2022 年度“CCF王选奖”
    GBase 8a修改端口
    Spring Boot接收从前端传过来的数据常用方式以及处理的技巧
  • 原文地址:https://blog.csdn.net/weixin_48171107/article/details/132718174