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 代码,这个是可以直接在浏览器中运行的
  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/wzndkj/p/12914670.html
Copyright © 2011-2022 走看看