我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Typescript的基础语法有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Typescript的基础语法有哪些

这篇文章主要为大家展示了“Typescript的基础语法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Typescript的基础语法有哪些”这篇文章吧。

    一.Ts是什么

    首先,强类型不允许随意的隐式类型转换,而弱类型是允许的。JavaScript就是经典的弱类型语言。而Typescript可以说是JavaScript的超集,在JS的基础上新增了许多语法特性,使得类型不再可以随意转换,能大大减少开发阶段的错误。

    二. 基本语法

    1.声明原始数据类型

    在变量后面指定一个关键字表示其只能为什么类型。

    string类型:

    const a: string = 'auroras'

    number类型:

    const b: number = 666 // 包括 NAN Infinity

    boolean类型:

    const c: boolean = true

    null类型:

    const d: null = null

    undefined类型:

    const e: undefined = undefined

    symbol类型:

    const h: symbol = Symbol()

    2.声明Object类型

    首先,object类型不单单可以指定对象,还可以指定数组或函数:

    const foo1: object = {};const foo2: object = [];const foo3: object = function(){};

    如果只想指定为对象,如下,对象属性都要提前声明好类型:

    const obj: {name: string,age: number} = {    name: '北极光',    age:18}
    2.1声明数组类型

    可以指定声明Array且通过<>指定元素类型,比如指定声明元素都为数字的数组:

    const arr: Array<number> = [1,2,3]

    第二种方式如下,也指定声明元素都为数字的数组:

    const arr: number[] = [1,2,3]
    2.2声明元组类型

    就是要提前指定数组里每个元素的类型,严格一一对应:

    const tuple: [number,string,boolean] = [666,'auraros',true]

    3.声明枚举类型

    通过关键字enum声明一个枚举类型,如:

    enum Status {    pedding = 1,    resolve = 2,    reject = '3'}//访问console.log(Status.pedding);

    如果全不写值,默认值为从0开始递增。如果第一个元素为字符类型,就必须全部定义值。如果第一个元素指定为一个数字,后面元素不写值,那值为第一个元素值按位置大小递增的结果。

    4.函数参数与返回类型

    函数声明式:

    指定函数传入参数类型,指定返回值类型,调用时传入参数个数与类型都必须相同:

    括号里指定每个参数类型,括号右边指定返回值的类型。

    function fun (name:string,age:number):string{  return 'sss'}fun('auroras',18);

    如果传入参数不确定传不传,那么可以给参数加个‘?'表明它是可选的:

    function fun (name:string,age?:number):string{  return 'sss'}fun('auroras');

    或者给参数添加默认值,那也会成为可选参数:

    function fun (name:string,age:number=666):string{  return 'sss'}fun('auroras');

    如果参数个数不确定,可以用扩展运算符加解构赋值表示,当然要传入与指定类型一致的:

    function fun (name:string,age:number=666,...res:number[]):string{  return 'sss'}fun('auroras',1,2,3);

    函数表达式:

    const fun2:(name:string,age:number)=>string = function(name:string,age:number){  return 'sss'}

    定义接口时再详细说。

    5.任意类型

    通过指定any关键字表示任意类型,跟原来 js 一样,可以任意赋不同类型的值:

    let num:any = 1;num = 'a';num = true;

    6.类型断言

    类型断言就是明确的告诉typescript这个变量就是某种类型的,百分之百确定。不用typescript在一些情况下要自己推断某些没有明确定义或者多变的场景是什么类型。

    可以通过 as+类型 断言它就是某种类型的:

    const res = 1;const num = res as number;

    也可以通过 <类型> 形式断言(不推荐):

    const res = 1;const num = <number>res

    7.接口基本使用

    接口可以理解为一种规范,一种契约。可以约束一个对象里应该有哪些成员,这些成员都是怎么样的。

    通过interface定义一个Post接口,这个接口是一个对象,规则为有一个name属性类型为string,age属性类型为number。

    interface Post {    name:string;    age:number}

    然后比如有一个函数 printPost ,它的参数 post 使用我们定义的 Post 接口的规则,那么调用此函数传参时要传入符合 Post 接口规则的数据。

    interface Post {    name:string;    age:number}function printPost(post: Post){    console.log(post.name);    console.log(post.age);}printPost({name:'asd',age:666})

    当然,函数传参时可能有些参数是可选的,那么我们可以给接口也定义可选的成员,通过属性后加一个‘?'指定可选成员:

    interface Post {    name:string;    age:number;    sex?:string;}const auroras: Post = {    name:'asd',    age: 18}

    如果用readonly修饰成员,那么这个成员属性在初始化后便不可修改:

    interface Post {    name:string;    age:number;    sex?:string;    readonly like:string }const auroras: Post = {    name:'asd',    age: 18,    like: 'natrue'}auroras.name = 'aaaa';//保错auroras.like = 'wind';

    如果连成员属性名称都不确定,那么可以声明动态成员,要指定成员名字类型与成员值的类型,如:

    interface Post {  [prop:string]:string} const auroras: Post = {    name:'asd',    like: 'natrue'}

    8.类基本使用

    描述一类具体事物的抽象特征。ts增强了es6class类的相关语法。

    首先,类的属性使用前必须提前声明好:

    class Person {    name: string;    age: number;    constructor(name:string,age:number){       this.name = name;       this.age = age;    }    sayHi(msg:string):void {        console.log(`hi,${msg},i am ${this.name}`);    }}

    9.类的访问修饰符

    private 修饰私有属性,只能在类内部访问。public 修饰公用属性(默认),

    外部也可访问:

    class Person {  public  name: string;  private  age: number;  constructor(name:string,age:number){       this.name = name;       this.age = age;    }  sayHi(msg:string):void {        console.log(`hi,${msg},i am ${this.name}`);        console.log(this.age);    }}const jack = new Person('jack',20);//Person类公有属性可以访问console.log(jack.name);//Person类私有属性不可以访问console.log(jack.age);protected修饰为受保护的,外部也不可访问。但与 private 的区别是若是继承的子类是可以访问的。class Person {  public  name: string;  private  age: number;  // protected  protected gender: boolean;    constructor(name:string,age:number){       this.name = name;       this.age = age;       this.gender = true;    }    sayHi(msg:string):void {        console.log(`hi,${msg},i am ${this.name}`);        console.log(this.age);    }}class children extends Person{     constructor(name:string,age:number){        super(name,age,);        //可以访问        console.log(this.gender);    }}

    10.类只读属性

    给属性设置 readonly 则为只读属性,该属性初始化后便不可再修改。

    class Person {  public  name: string;  private  age: number;  // readonly  protected readonly gender: boolean;    constructor(name:string,age:number){       this.name = name;       this.age = age;       this.gender = true;    }    sayHi(msg:string):void {        console.log(`hi,${msg},i am ${this.name}`);        console.log(this.age);    }}

    11.类与接口

    一些类与类之间有些许共同的特征,这些共同的特征可以抽象成为接口。

    比如 Person 类和 Animal 类,虽然是不同类,但是人和动物都会吃东西和走路等,这些共同的特征可以由接口定义。最后一个特征就定义一个接口。

    //吃接口interface Eat {    eat(food:string):void}//行进接口interface Run {    run(behavior:string):void}//人class People implements Eat,Run {    eat(food:string){       console.log(`在餐桌上吃${food}`);    }    run(behavior:string){       console.log(`站着${behavior}`);    }}//动物class Animal implements Eat,Run {    eat(food:string){       console.log(`在地上上吃${food}`);    }    run(behavior:string){       console.log(`爬着${behavior}`);    }}

    12.抽象类

    约束子类必须有某些成员,有点类似接口,不同的是抽象类可以包含一些具体的实现。比如动物类应该为一个抽象类,它的子类有猫,狗,熊猫等。它们都是动物,也有一些共同的特征。定义一个类为抽象类后,就不能再new实例了,只能被其子类继承。

    其中abstract 定义抽象类,类里用abstract定义一个抽象方法,子类必须实现抽象方法。

    abstract class Animal  {    eat(food:string){       console.log(`在地上吃${food}`);    }    abstract run (behavior:string):void}//猫class Dog extends Animal{    run(behavior:string):void{        console.log(behavior);    }}const d1 = new Dog();d1.eat('骨头')d1.run('四脚爬行') //兔子class rabbit extends Animal{    run(behavior:string):void{        console.log(behavior);    }}const r1 = new rabbit();d1.eat('萝卜')d1.run('蹦蹦跳跳')

    13.泛型

    泛型就是在定义函数,接口或者类的时候没有指定具体类型,等到使用时才指定具体类型。极大程度的复用代码。

    比如有一个 identity 函数,这个函数会返回任何传入它的值,且传入的类型与返回的类型应该是相同的。如果传入数字,不用泛型的话,

    这个函数可能是下面这样:

     function identity(arg:number):number{     return arg }如果传入字符串,这个函数可能是下面这样: function identity(arg:string):string{     return arg }这样的话太麻烦,所以可以使用泛型,一般用大写 T 表示泛型,它可以适用于多个类型,且传入类型与返回类型是相同的。 function identity<T>(arg:T):T{     return arg }

    以上是“Typescript的基础语法有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Typescript的基础语法有哪些

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Typescript的基础语法有哪些

    这篇文章主要为大家展示了“Typescript的基础语法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Typescript的基础语法有哪些”这篇文章吧。一.Ts是什么首先,强类型不允许随意
    2023-06-22

    TypeScript基本的语法有哪些

    本篇内容主要讲解“TypeScript基本的语法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TypeScript基本的语法有哪些”吧!前端那么多酷炫的东西,真是太好玩了。但是,JavaS
    2023-06-16

    python的基础语法有哪些

    python基础语法关键要素:变量和数据类型:动态类型,使用等号赋值流程控制:if-elif-else、循环函数:使用def关键字定义对象和类:面向对象,用class关键字定义输入和输出:input()获取输入,print()输出信息其它语
    python的基础语法有哪些
    2024-04-20

    Scala基础语法有哪些

    这篇文章主要讲解了“Scala基础语法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Scala基础语法有哪些”吧!Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ;
    2023-06-19

    ASP.NET基础语法有哪些

    这篇文章主要介绍“ASP.NET基础语法有哪些”,在日常操作中,相信很多人在ASP.NET基础语法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET基础语法有哪些”的疑惑有所帮助!接下来,请跟
    2023-06-18

    JSON基础语法有哪些

    这篇文章主要介绍“JSON基础语法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JSON基础语法有哪些”文章能帮助大家解决问题。JSON: JavaScript Object Notation
    2023-06-28

    Python基础语法有哪些

    本篇内容介绍了“Python基础语法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.变量常量,顾名思义就是值不能被改变的量,比如5、
    2023-06-02

     typeScript入门基础知识有哪些

    本文小编为大家详细介绍“ typeScript入门基础知识有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“ typeScript入门基础知识有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。TS 的特点:
    2023-06-29

    asp语言基础语法有哪些

    ASP(Active Server Pages)是一种动态网页开发技术,它使用VBScript(Visual Basic Scripting Edition)作为默认的脚本语言。以下是ASP语言的基础语法:1. 变量声明和赋值:- 使用``
    2023-09-21

    Golang中的基础语法有哪些

    这篇“Golang中的基础语法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Golang中的基础语法有哪些”文章吧。导
    2023-07-05

    Python中的基础语法有哪些

    本篇内容介绍了“Python中的基础语法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、控制结构控制结构包括条件判断和循环两种,再p
    2023-06-16

    Python基础语法的使用有哪些

    这篇文章主要讲解了“Python基础语法的使用有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python基础语法的使用有哪些”吧!1.数值数值包括整型和浮点型,分别对应整数和浮点数,后
    2023-06-02

    PHP基础语法知识有哪些

    本篇内容主要讲解“PHP基础语法知识有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP基础语法知识有哪些”吧!转义到PHPPHP解析引擎需要一种方法来区分PHP代码和页面中的其他元素。这
    2023-06-04

    Java编程基础语法有哪些

    本篇内容主要讲解“Java编程基础语法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java编程基础语法有哪些”吧!一、Java的词法1、标识符标识符是类、变量和方法等的名字,作用是让编译
    2023-06-17

    大数据基础语法有哪些

    本篇内容主要讲解“大数据基础语法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“大数据基础语法有哪些”吧!1 计算机理论介绍2 编程基础--进制分类、进制转换进制就是进位制。指的是我们来表示
    2023-06-02

    Python基础术语有哪些

    本篇内容介绍了“Python基础术语有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.必须知道的两组Python基础术语A.变量和赋值
    2023-06-16

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录