zoukankan      html  css  js  c++  java
  • TypeScript 定义

    TypeScript 是 JavaScript 的超集,正因为它是建立在 JavaScript 上的一门语言,TypeScript 把其他语言中的一些精妙的语法带入到了 JavaScript 之中,从而把 JS 带入到了一个新的高度,在 TS 里面可以使用各种 JS 之外的扩展语法,同时 TS 对面向对象和静态类型的良好支持,你可以建造出更健壮,更可维护的大型项目,
     
    什么是 TypeScript,打开 https://www.typescriptlang.org/, TypeScript is a typed superset of JavaScript that compiles to plain JavaScript。这就是官网对 TypeScript 的准确定义,它说 TypeScript 是 JavaScript 的一个超集,而且它拥有类型机制,它不会直接在浏览器执行,它会在编译成 JavaScript 后才能够被执行

    什么是超集,比如说 ES6 是 ES5 的一个超集,因为 ES6 兼容了 ES5 所有的语法的情况下,还提出了自己一些新有的独特的语法,所以 ES6 包含了 ES5 所有的内容,包括一些额外的东西,那我们就可以说 ES6 是 ES5 的一个超集。TypeScript 是 JavaScript 的一个超集,就意味着,它除了包含 ES6 ES5 这样的基础的绝大多数的特性之外,它还有一些自己独特的语法特性,所以学习 TypeScript 就是在 ES6 ES5 基础上去学习 TypeScript 的一些独特的语法

    我们说 TypeScript 有自己的类型,这里的类型实际上是一种静态的类型,我们通过代码举个例子就明白了
    demo.js
    // a 是一个动态类型,它的类型可以随着赋值改变
    let a = 123; // 这个时候 a 是一个基础类型,是一个 number 类型的变量
    a = '123'; // 这个时候,a 是一个 string 类型的变量,这个时候不会报错

    demo.ts
    // 静态类型
    let b = 123;
    b = '123';
    /**
    * 这个时候报错了,Type '123' is not assignable to type 'number',
    * string 类型无法存到 number 类型的变量里面去
    * b 开始定义的是数字类型,未来也只能是数字类型
    */
    所以说在 TypeScript 里面实际上指的是这种静态类型。实际上 ts 里面 b 应该这么写
    let b: number = 123;
    我定义一个 number 类型的 b ,它的初始值是 123,未来 b 不能是其他类型,但是可以改变值
    let b: number = 123;
    b = 456;

    TypeScript 不能直接在浏览器或者 Node 环境下运行,它必须通过编译器编译成普通的 JavaScript 之后再去运行,怎么理解,打开 https://www.typescriptlang.org/play/index.html。在左侧编写一些 ts 代码
    ts
    interface Person {
      name: string
    }
    const teacher: Person = {
      name: 'zhang san'
    }
    js
    "use strict";
    const teacher = {
      name: 'zhang san'
    };
    ts 直接拷贝到浏览器会报错,所以要编译成 JS 代码,右侧是编译好的 JS 代码,这个是可以直接在浏览器中运行的
  • 相关阅读:
    Redis企业级数据备份与恢复方案
    使用canal增量同步mysql数据库信息到ElasticSearch
    SpringBoot基于数据库实现简单的分布式锁
    SpringBoot+ShardingSphere实现分库分表 + 读写分离
    SpringBoot 使用JestClient操作Elasticsearch
    Java 操作 MongoDB
    VS C#开发中WinForm中Setting.settings的作用
    Sql 触发器禁用和启用
    ROW_NUMBER over (order by **)
    Aspen 安装
  • 原文地址:https://www.cnblogs.com/wzndkj/p/12914670.html
Copyright © 2011-2022 走看看