typeScript的基础(3)

5、TypeScript基础与TypeScript 3新特性全解析 本文详细解析了TypeScript的基础知识以及TypeScript 3的新特性。内容涵盖TypeScript编译配置、代码检查工具TSLint的使用、代码格式化工具Prettier的集成、TypeScript 3的元组增强、未知类型(unknown)、项目引用机制以及默认JSX属性等实用功能。通过这些内容的学习,开发者可以更好地使用TypeScript进行高效、安全的项目开发。 阅读详情

一:TypeScript是什么?

  1. 他是以javascript为基础构建的语言;

  2. 他是一个javascript的超集;

  3. 可以在任何支持javascript的平台中执行;

  4. 他扩展了javascipt并添加了类型系统;

注意:Ts不能被解析器直接执行

二、Typescript安装编译

​ 在使用npm命令之前电脑必须得安装nodejs

​ 安装

npminstall-gtypescript
或者
cnpminstall-gtypescript
或者
yarnglobaladdtypescript

​ 运行:

tsc  helloworld.ts

​ 注意:如果电脑上面没有安装过cnpm,请先安装cnpm

npm install -g cnpm--registry=https://registry.npm.taobao.org

​ 注意:如果电脑上面没有安装过yarn请先安装yarn:

npm install -gyarn 
或者
cnpm install -gyarn

​ 三、Typescript开发工具Vscode自动编译.ts文件

​ 1.创建tsconfig.json文件tsc–init生成配置文件

​ 在这里插入图片描述

2、老版本vscode点击:任务->运行任务->tsc:监视-tsconfig.json然后就可以自动生成代码了

在这里插入图片描述

3、最新版本vscode点击:终端->运行任务->typescript->tsc:监视-tsconfig.json然后就可以自动生成代码了

二.typeScript数据类型

​ TypeScript支持与JavaScript几乎相同的数据类型

注意:

  • 在TypeScript中变量声明了是什么类型,它赋的值也必须和声明的类型一致,不然会报错
  • 声明赋值可以同时进行,ts会自动对变量进行类型检测
  • 下面赋的值会覆盖上面的值

typeScript的数据类型
布尔类型(boolean)
字符串类型(string)
数值类型(number)
数组类型(array)
元组类型(tuple)
枚举类型(enum)
任意类型(any)
null和undefined
void类型
never类型

布尔(boolean):
//布尔类型(boolean)   true false
var flag:boolean=true
flag=true

字符串(string):

//字符串类型(string)
  let str:string='hahah'
  str=12   //错误写法
  str=false   //错误写法
  str='你好'
console.log(str)

数值类型(number):

//数值类型(number)
 var a:number=123;
 console.log(a);
 a='string'   //错误写法
 a=boolean      //错误写法
 a=87.5
console.log(a)

数组类型(array)

/数组类型(array)  Ts中定义数组有两种方法
   //   es5 var  arr=[1,'2333',false]

   //1.第一种定义方法
         let arr:number[]=[1,2,366]
         console.log(arr)

        let arr:string[]=['html','css','php']
        console.log(arr)


   //第二种定义方法
         let  arr:Array<number>=[11,22,33];
         console.log(arr)

         let  arr:Array<string>=['html',"css","php"];
         console.log(arr)

元组类型(tuple):

在定义数组的时候,类型和数据的个数一开始就已经限定了

let arr:[string,number,boolean]=['str',123,true];
console.log(arr)

注意:元组类型使用的时候,数据的类型的位置和数据的个数,应该和定义元组的时候的数据一致

枚举类型(enum):

enum枚举类型是对javascript标准数据类型的一个补充

如果说我们有些数据是常用的,个数也是固定的,就可以把它定义为一种单独的数据类型,叫枚举类型

// 枚举类型(enum)
        enum flag {success=1,error=-1}
        var  f:flag=flag.success
         console.log(f)

        enum flag {success=1,error=-1}
        console.log(flag.error)

         enum Color {red,blue,cyan}
         var c:Color=Color.blue;
         console.log(c)  //  1  没有给值,默认是索引值

         enum Color {red,blue=5,cyan}
        // var c:Color=Color.red;
        // console.log(c)    //输出0

        // enum Color {red,blue=5,cyan}
        // var c:Color=Color.cyan;
        // console.log(c)     //输出6,以上一个为基础

任意类型(any):

可以存储任何类型的数据,当我们不知道当前数据是什么类型,但又想把他存起来可以用any类型

// 任意类型(any)
    var num:any=123;
 	num='456'
    num=true
    console.log(num)

当一个数组中要存储多个数据,个数不确定,类型不确定,也可以使用any类型

let aa:any[]=[1,'hello',true]
console.log(aa) //[1,'hello',true]

null和undefined

// null和undefined  其他类型的子类型
         var num:number;
        console.log(num)   //undefined  报错

          var num:undefined;
         console.log(num)    //undefined  正确
        
        var num:number | undefined;
         num=12;
        console.log(num)

        //定义未赋值
         var num:number|undefined;
         console.log(num)
         //一个元素可能是undefined或者是null
          var num:number|null|undefined;
          num=123;
         console.log(num)

void:

从某种程度上来说,void类型与any 类型相反,它没有任何类型,当一个函数没有返回值是,通常它的返回值类型是void

function run():void{
      console.log('run')
   }
 	run()

定义void类型的变量,可以接收一个undefined的值,但意义不大

let vd:void=undefined
console.log(vd)  //undefined

never:

never类型 其他类型的值 包括null和undefined 的子类型 代表从不会出现的值
这就意味着声明never的变量只能被never类型所赋值;

    var a:undefined;
    a=undefined;

    var  b=null;
    b=null;

三.函数类型

1.函数的定义

   function run:string{
        return '必须返回字符串'
    }
//匿名函数
var run2=function():number{
    return  123
}
alert(run2())

//ts定义方法传参
function getInfo(name:string,age:number):string{
        return `${name}------${age}`
    }

    alert(getInfo('zhangsan',20))
// 匿名函数
   var getInfo=function(name:string,age:number):string{
        return `${name}------${age}`
    }

    alert(getInfo('王五',20))

2.可选参数

​ es5里面方法的实参和形参可以不一样,但是ts中必须一样,如果不一样就要配置必 选参数

加个?就是可选参数,可选可不选

function getInfo(name?:string,age:number):string{
      if(age){
        return `${name}------${age}`
      }else{
        return `${name}------年龄保密`
      }
    }

    alert(getInfo('zhangsan'))

3.默认参数

​ es5终不能选默认参数,es6和ts都可以有默认参数

注意:可选参数必须配置到参数最后面,有参数传入,默认值不起作用

   function getInfo(name:string,age:number=20):string{
        if(age){
            return `${name}------${age}`
        }else{
            return `${name}------年龄保密`
        }
    }

    // alert(getInfo('zhangsan'))   //zhangsan---20
    alert(getInfo('zhangsan',30))   //zhangsan---30

4.剩余参数

​ …运算符接收新传过来的值

 function sum(a:number,...result:number[]):number{
//解释:a=1,result=2,3,4,5,6
            var sum=0;
            for(var i=0;i<result.length;i++){
                sum+=result[i]
            }
            return sum;
        }
        alert(sum(1,2,3,4,5,6))  //21

5.函数重载

​ 多个函数方法名是一样的

function getInfo(name:string):string;
        function getInfo(age:number):number;
        function getInfo(str:any):any{
                if(typeof str=='string'){
                    return '我叫'+str
                }else{
                    return '我的年龄是'+ str
                }

        }
        // alert(getInfo('张三'))   //我叫张三
        alert(getInfo(30))   //我的年龄是30

6.箭头函数 es6

   setTimeout(()=>{
            alert('123')
        },1000)

ES5的类和继承

  function Person(){
            this.name='张三';
            this.age=18;
            this.run=function(){
                alert(this.name+'在跑步')
            }
        }
  //原型链
        //通过原型链添加属性
        // 注意:原型链上的属性会被多个实例共享,构造函数的属性不会
        Person.prototype.sex='男';
        //通过原型链添加方法
        Person.prototype.work=function(){   //实例方法
            alert(this.name+'在工作')
        }
        //静态方法
        Person.getInfo=function(){
            alert('我是静态方法')
        }

        var p=new Person();

        alert(p.name)   //张三
        p.run();   //张三在跑步
        调用原型链上的方法
        p.work()  //张三在工作
        调用静态方法
        Person.getInfo()

es5里的继承 对象冒充实现继承

​ 对象冒充可以继承构造函数的属性和方法

​ 对象冒充可以继承构造函数的属性和方法,但是没办法继承原型链的属性和方

 function Person(){
            this.name='张三';
            this.age=18;
            this.run=function(){
                alert(this.name+'在跑步')
            }
        }

        Person.prototype.sex='男';
        Person.prototype.work=function(){   //实例方法
            alert(this.name+'在工作')
        }
        //web类  继承person类  原型链UI想冒充组合继承模式
        function Web(){
            Person.call(this)   /* 对象冒充实现继承*/
        }
        var w=new Web();
        // w.run();      
        w.work();    

es5继承 原型链继承

​ 好处:原型链实现继承既可以实现构造函数里的属性和方法的继承,又可以实现原型链里的继承

 function Person(){
            this.name='张三';
            this.age=18;
            this.run=function(){
                alert(this.name+'在跑步')
            }
        }

        Person.prototype.sex='男';
        Person.prototype.work=function(){   //实例方法
            alert(this.name+'在工作')
        }
        //web类  继承person类  原型链UI想冒充组合继承模式
        function Web(){
           
        }
        Web.prototype=new Person()   //原型链实现继承
        var w=new Web();
        // w.run();    //张三在跑步
        w.work();      //张三在工作

TS中类:

//ts类中的定义和使用
class aa{
	//定义属性
	name:string
	age:number
	sex:string
	//定义构造函数
	constructor(name:string='花花',age:number=18,sex:string='女'){
		this.name=name
		this.age=age
		this.sex=sex
	}
	//定义实例方法
	bb(){
		console.log(`我是${this.name},今年${this.age}岁,性别${this.sex}`)
	}
}
//实例化对象
const cc=new aa()
cc.bb() //我是花花,今年18岁,性别女

TS实现继承

class cc{
	//定义属性
	name:string
	age:number
	//定义构造函数
	constructor(name:string,age:number){
		//更新属性
		this.name=name
		this.age=age
	}
	//定义实例方法
	aa(){
		console.log(`我是${this.name},今年${this.age}`)
	}
}

定义一个类,作为子类,继承

//定义一个类,作为子类
class dd extends cc{
	constructor(name:string,age:number){
		//调用父类中的构造函数,使用super
		super(name,age)
	}
	//调用父类中的方法
	aa(){
		console.log('我是子类中的aa方法')
		//调用父类中的aa方法
		super.aa()
	}
}

实例化

//实例化父
const person=new cc('父',11)
person.aa()
//子
const stu=new dd('子',1)
stu.aa()

类里面的修饰符

public :公有 在类里面,子类,类外面都可以访问;

protected:保护类型 在类里面和子类里面可以访问,类外面不能访问;

private :私有 在类里面可以用,类外面和子类不能用

.注意:属性如果不写修饰符默认是公有的(public)

public :

公有 在类里面,子类,类外面都可以访问;

class aa{
	public name:string
    public constructor(name:string){
        this.name=name
    }
}
const b=new aa('张三')
console.log(b.name) //张三

protected:

保护类型 在类里面和子类里面可以访问,类外面不能访问;

class aa{
	protected name:string
    constructor(name:string){
        this.name=name
    }
}
class bb extends aa{
	constructor(name:string){
		super(name)
	}
	cc(){
		console.log('hello',this.name) 
	}
}
const c=new bb('李四')
c.cc() //hello 李四

private :

私有 类中的成员如果使用private来修饰,那么外部是无法访问到这个成员的

class aa{
	private name:string
    public constructor(name:string){
        this.name=name
    }
}
const b=new aa('张三')
console.log(b.name) //报错属性"name"为私有属性,只能在类"aa"中访问

子类也不能访问:

class bb extends aa{
	constructor(name:string){
		super(name)
	}
	cc(){
		console.log('hello',this.name) //报错属性"name"为私有属性,只能在类"aa"中访问
	}
}

总结:
安装typescript以及配置vscode里的自动监听
typescript里的数据类型,
复习了ES5里的类和继承;
typeScript里的类,继承,静态方法

Vue3进阶-第十七篇:TypeScript集成基础 接口定义接口可以用于定义对象的形状,在Vue组件中非常有用。例如,在一个接收用户信息并显示的组件中:< template > < div > < p > 用户名: {{ user.username }} </ p > < p > 邮箱: {{ user.email }} </ p > </ div > </ template > < script lang = " ts " > import {data() : {return {user : {} }); 阅读详情

相关推荐

智能气象站:ESP32驱动的心知天气数据可视化实践

本文详细介绍了基于ESP32微控制器和心知天气API构建智能气象站的完整实践。通过Arduino开发环境,实现天气数据的获取、JSON解析与OLED屏可视化展示,涵盖硬件连接、API配置、低功耗优化及部署问题排查,为物联网开发者提供实用指南。

jump7的博客 210

ts泛型 不能将类型“string”分配给类型“U”。 “U”可以使用与“string”无关的任意类型进行实例化。

U”可以使用与“string”无关的任意类型进行实例化。不能将类型“string”分配给类型“U”。

xuelang532777032的博客 1157

JSP期末考试复习习题及答案

以下习题是对于平时课堂小测的整理,如有错误敬请指正! 欢迎一起交流~ 预祝各位小伙伴们考试顺利! Test1 一. 单选题 – 1.(单选题)当用户请求jsp页面时,JSP引擎就会执行该页面的字节码文件响应客户的请求,执行字节码文件的结果是() A. 发送一个JSP源文件到客户端 B. 发送一个Java文件到客户端 C. 发送一个HTML页面到客户端 D. 什么都不做 – 2.(单选题)下列动态网页和静态网页的根本区别描述错误的是( D) A. 静态网页服务器端返回的HTML文件是事先存储好的 B. 动.

技术小白 2万+

【TypeScript 4.5】005-第 5 章 函数

在 JavaScript 除了可调用之外函数也可以有属性然而函数类型表达式的语法不允许声明属性如果我们想用属性来描述可调用的东西可以在一个对象类型中写一个调用签名2022.02.08 01:02:20 增补内容:那么对象类型就像一个函数了!可以像调用函数一样调用对象!,其中的message()是会报错的!因为 message 没有调用签名!参考下面的代码示例,DescribableFunction 里面有调用签名,调用签名就类似“函数部分”,有了它就可以像调用函数一样调用对象类型!

weixin_65251013的博客 1222

【Python脚本】Python自动大麦网抢票,准点原价秒杀演唱会门票,拒绝黄牛交易!从我做起!!!1

你是否错过了周杰伦的票,最近又没抢到五月天的票,不要太难过,今晚有张学友的票,后天还有张杰的票,加油哦!

weixin_45841831的博客 6万+

非华为电脑也能用上鸿蒙生态?手把手教你给Win10/Win11装上最新华为电脑管家(附移动应用引擎开启方法)

本文详细介绍了如何在非华为品牌的Windows 10/11电脑上安装华为电脑管家并启用移动应用引擎,实现鸿蒙生态的无缝协同体验。从BIOS设置到安装步骤,再到性能优化和常见问题解决,手把手教你解锁跨设备高效工作流。

weixin_42542669的博客 4218

TypeScript

记录了一些typeScript 最基础的知识

qq_48637533的博客 481

Modelsim:LPDDR5仿真(含美光仿真模型官方sv&vcs代码)

虽然,三星在设计跟量产上,早于其他家存储产商,但是镁光后来居上了,是业界首家支持全速 LPDDR5 的供应商,并且开发者在做开发的时候,也是用美光颗粒比较多,所以这里就先以美光的仿真模型为主进行仿真。 本工程为美光官方工程,支持Modelsim、VCS、ncverilog三种仿真器仿真。模型破解过,为完整system-verilog代码。

千歌叹尽执夏的博客 1281

Java泛型中T和问号(通配符)的区别

类型本来有:简单类型和复杂类型,引入泛型后把复杂类型分的更细了. 概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现

ikownyou的博客 5万+

极智嘉嵌入式面试题及参考答案

IIC(Inter-Integrated Circuit)即集成电路总线,是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它仅使用两根线,即串行数据线 SDA 和串行时钟线 SCL,就能实现多个设备之间的通信,具有简单、高效、占用资源少等优点,广泛应用于各种嵌入式系统中。

大模型大数据攻城狮的专栏 921

Electron vue3 - 使用SerialPort与串口交互教程,计算机串行端口(COM口、USB转串口等)进行通信连接读取或写入Arduino、单片机、PLC、扫码枪、打印机、老式调制解调器!

实战Electron使用SerialPort与串口交互详细全过程,Electron-vue3与串口交互示例,Electron vue使用serialport实现串口交互通讯,Electron-vue使用serialport连接本地串口,electron-vue 台称串口对接 SerialPort,electron串口调试工具,electron+vue+serialport实现串口通信,串口通信serialport使用和调试,electron-vue使用serialport串口通信及踩过的坑(已解决!)ele

🏆 前端领域优质创作者 4640

关于学习TS中的一些笔记

前段时间学习了ts,做了一些笔记,想着还是发到博客上来,后续可以反过来复习! console.log('你好呀!TS') function getData() { } let str: string = '你好TS' console.log(str) let arr:number[] = [1,2,3]; console.log(arr); let arr2:Array<string> = ['1', '2', '3']; console.log(arr2) // 元组类型 给数组中某个元

Z忽虎的博客 974

C#企业级工作流管理:从优化到重构的实战指南——代码深度解析与性能调优策略

本文通过Workflow Core与Elsa引擎实现企业审批流程优化,将处理时间从72小时缩短至2小时,效率提升200%。文章包含12个代码示例,涵盖流程梳理、引擎选型(对比Workflow Core与Elsa特性)、模块化重构(策略模式应用)及异常处理机制。关键实现包括:可视化流程建模、Serilog性能监控、Elsa集成配置、策略模式消除重复代码,以及补偿事务设计。最终方案支持高并发,通过数据库连接池优化性能,为企业级工作流系统提供完整技术方案。

墨夶的博客 896

Vue3+TypeScript基础应用

Vue-cli构建vue3 安装vue-cli npm install -g @vue/cli yarn global add @vue/cli 查看安装版本:vue --version 如果低于4.5.6可以更新一下,老版本没有创建vue3的选项 使用命令行构建 输入vue create vuedemo 会跳出三个菜单 ? Please pick a preset: (Use arrow keys) //请选择预选项 > Default ([Vue 2] babel, esli

Ruebass的博客 1685

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Vue 3 + TypeScript 从基础到熟练指南

TypeScript的核心是类型。在Vue组件中,我们可以为props、emits、reactive状态等定义类型。

weixin_43746297的博客 812

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Vue3+TypeScript基础

ref , onMounted , onUnmounted } from 'vue' // 按照惯例,组合式函数名以“use”开头 export function useMouse() {// 被组合式函数封装和管理的状态 const x = ref(0) const y = ref(0) // 组合式函数可以随时更改其状态。

weixin_61697263的博客 1062

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Vue3+TypeScript从入门到精通系列之:TypeScript基础类型

Vue3+Typescript从入门到精通系列之:Typescript基础类型一、布尔类型boolean二、数字类型number三、字符串string四、数组五、元组六、枚举类型七、any类型八、void类型九、object类型十、联合类型十一、断言十二、类型推断 一、布尔类型boolean //基础类型 (()=>{ //布尔类型-------boolean //let变量名:数据类型=值 let flag:boolean = true console.log(flag) })() true 二

zhengzaifeidelushang的博客 1474

Vue3 + Typescript 基础进阶与实战完全指南

/ 定义 props 类型// 定义 props 类型 const props = defineProps < {} >();// 定义 emits 类型 const emit = defineEmits < {} >();// 定义 props 类型 const props = defineProps < {} >();// 定义 emits 类型 const emit = defineEmits < {} >();string;

代码时光 1337

TypeScript基础以及在vue3中的应用

注:接口和类型别名有共同的点,都可以描述对象的形状,不同点:接口可以合并、继承,类型别名不行,类型别名可以 使用联合和交叉类型、直接定义类型,接口不行,各有各的优势,一般来说,如果描述对象的形状使用接口,如果需要组合类型使用类型别名。注:在实际开发的过程中,这些基础类型直接定义就可以了,不需要加类型,因为TS会自动类型推导。2、接口( interface ),用于描述对象的形状。3、类型别名(type) ,跟接口有点相似。7、tuple(元组)和enum(枚举)1、基础类型(涵盖js的基础类型)

念念小小的博客 248

3.【TypeScript 教程】TypeScript 基础类型

自本节起,我们将开始接触 TypeScript 的类型系统,这也是 TypeScript 最为核心的部分。本节介绍 TypeScript 中一些基础类型,有些特殊类型会在接下来进行单节描述。在进行变量声明时,需要注明其对应的类型,这个跟 JavaScript 的变量声明不同。在写 TypeScript 代码时,所有的变量都需要有类型,这个观点要深刻的烙印在心里。

这是一个web全栈开发的博客,取其精华去其糟粕,争取让大家一看就懂,一学就会,一用就成~ 1271

Vue 3 TypeScript 配置基础项目介绍

Vue 3 TypeScript 配置基础项目介绍 Vue.js 是一个流行的前端JavaScript框架,而本项目是一个为Vue 3项目提供TypeScript配置的官方开源项目。该项目使用JavaScript和TypeScript作为主要的编程语言。 项目核心功能 本项目提供了基础的TypeScript配置文件,这些配置文件旨在帮助开发者快速搭建Vue 3项目,并确保TypeScript在项目...

gitblog_00382的博客 408

前端知识分享——Vue3 + Vite + TypeScript 搭建基础项目

Vue3 + Vite + TypeScript 搭建基础项目Vue3 + Vite + TypeScript 搭建基础项目Vue 3 + Vite + Typescript项目初始化代码规范和 ESlint基础配置编辑器集成配置 commit 钩子在开发和构建的时候进行验证GitCommit规范Vite 中的 TS 环境说明Vue3 中的 TS 支持Vite 中的 script-setup 语法script-setup 中的编译宏配置转换 JSX 和 TSX初始化 VueRouter初始化 Vuex配置模

sinat_43095140的博客 3572

【Vue3实战】TypeScript前端实战基础

经过多年的全栈开发经验和多种编程语言的开发经验,编程语言的规范的重要性与日俱增对未来的前端编程而言,TypeScript的比重相信一定会日新月异所以这边对于TypeScript做一篇比较详细和完整的整理日后也会逐渐更新和补充。TypeScript目前版本:5.3TypeScript官方网站传送门如果您对前端技术感兴趣的话,可以订阅鄙人的Vue栏目Vue栏目传送门TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。

qq_21609191的博客 1403

TypeScript基础结合Vue3应用

TypeScript基础结合Vue3应用

weixin_43323097的博客 1181

Vite+Vue3+TypeScript基础知识案例

vite诞生是为了提升web项目运行性能,以更快的速度将应用页面展示给用户。Vite 以原生 ESM方式提供源码。这实际上是让浏览器接管了打包程序的部分工作:Vite 只需要在浏览器请求源码时进行转换并按需提供源码。根据情景动态导入代码,即只在当前屏幕上实际使用时才会被处理。提供的驱动力:2.1、优化缓慢的服务器启动(冷启动开发服务器和正式环境响应速度);2.2、优化缓慢的项目更新(vite服务器);...

梨子社区 1万+

TypeScript基础学习 Vue中引用typescript(3)

参考vue-typescript-admin-element-ui 基于Vue+typescript版的后台管理系统模板。 众所周知,js是一门弱类型的语言,尤其是在变量赋值时,永远都是给变量直接赋值各种类型值来初始化,线上一些隐藏的bug就冷不防会暴露出来。把这种错误扼杀在项目开发编译阶段而非上线阶段,所有就有了typescript超集的出现。那Vue中是怎么引用typescript项目的呢 一、vue-property-decorator vue-property-decorator在vue-class

光明小学王小雨的博客 1810
上一篇: typeScript变基础(2)
下一篇: typescript基础(4)
starry__sty
博客等级 码龄6年 30粉丝 120原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值