学习vue3之路day2

简介: 学习vue3之路day2

TypeScript常用语法

对一个java后端来说js常用的类型方法大都相似。

基础类型

布尔值 boolean

let show: boolean = false;

数字 number

和js一样ts中所有数字都是浮点数。

let val:number = 10;

字符串 string

let name:string = "zhangsan"

Undefined 、null

默认情况下 nullundefined 是所有类型的子类型。 就是说你可以把 nullundefined 赋值给 number 类型的变量。

数组 []、Array

let data:number[] = [1,2,3];
let arr:Array<number> = [2,3,4];

*元组Tuple

元组类型定义一个固定大小的数组,里面的元素类型可以不同。 比如,你可以定义一对值分别为 stringnumber 类型的元组。

let tp: [string,number] = ["name",10];

枚举 enum

enum StateEnum{
    Open,
    Close
}

let state:StateEnum = StateEnum.Open;

// 通过数值获取名称
let name = StateEnum[1];

* any

不知道的类型,不希望类型检查器对这些值进行检查时 可以用any。

一用any回到js,不要滥用。

void

通常用来修饰函数无返回值

function fn():void{
}

object

表示除基本类型boolean,number,string 之外的类型。

let obj: object = {}

* 联合类型

表示取值可以为多种类型中的一种。 在函数定义,类字段声明中常用。

function say(x: number | string) : string {
  return x.toString()
}

* 类型断言

有点像java的强制类型转换。

方式一: <类型>值
方式二: 值 as 类型  tsx中只能用这种方式

function getLength(x: number | string) {
  if ((<string>x).length) {
    return (x as string).length
  } else {
    return x.toString().length
  }
}

类型推断

类型推断: TS会在未指定类型的时候推测出一个类型
有下面2种情况: 1. 定义变量时赋值了, 推断为对应的类型. 2. 定义变量时没有赋值, 推断为any类型

let val = 123  // number
let name = 'abc' //string
let obj; //any

接口 Interface

接口的作用是定义一个结构,定义对象的属性、行为。

可选属性用?表示

只读属性 readonly

// 定义人的接口
interface IPerson {
  id: number
  name: string
  age: number
  sex?: string
}

let p1: IPerson = {
  id: 1,
  name: '张三',
  age: 20,
  sex: '男'
}

定义函数

interface SearchFunc {
  (source: string, subString: string): boolean
}

类实现接口 implements

跟java 一样 一个类可以实现多个接口,接口可以继承接口extends

class User implements IPerson{
    id: number;
    name: string;
    age: number;
    sex?: string;
    
    constructor(id:number,name:string,age:number){
        this.id = id;
        this.name = name;
        this.age = age;
    }
}
相关文章
|
18天前
|
JavaScript 前端开发 索引
「Vue3系列」Vue3 条件语句/循环语句
在 Vue 3 中,你可以使用条件语句来动态地控制模板中的渲染内容。Vue 提供了多种方式来实现条件渲染,包括 `v-if`、`v-else-if`、`v-else` 和 `v-show` 指令。
33 0
|
19天前
Vue3框架中让table合计居中对齐
Vue3框架中让table合计居中对齐
|
19天前
Vue3 子/父组件相互调用
Vue3 子/父组件相互调用
35 0
|
19天前
|
JavaScript
vue3 使用element plus 打包时 报错
vue3 使用element plus 打包时 报错
23 0
|
15天前
|
JavaScript 前端开发 数据安全/隐私保护
Vue3——如何实现页面访问拦截
Vue3——如何实现页面访问拦截
|
19天前
Vue3 子传父 暴露数据 defineExpose
Vue3 子传父 暴露数据 defineExpose
Vue3 子传父 暴露数据 defineExpose
|
9天前
|
JavaScript 算法 前端开发
vue3和vue2的区别都有哪些
【4月更文挑战第15天】Vue3与Vue2在响应式系统(Proxy vs. Object.defineProperty)、组件模块化(Composition API vs. Options API)、数据变化检测(Reactive API vs. $watch)、虚拟DOM算法(基于迭代 vs. 基于递归)及Tree-Shaking支持上存在显著差异。Vue3的改进带来了更好的性能和灵活性,适合追求新技术的项目。Vue2则因其成熟稳定,适合维护大型项目。选择版本需根据项目需求、团队情况和技术追求来决定。
13 0
|
10天前
|
JavaScript
vue3+vite项目配置ESlint
vue3+vite项目配置ESlint
12 0
|
10天前
乾坤子应用配置(vue3+vite)
乾坤子应用配置(vue3+vite)
16 0
vue3中使用router路由实现跳转传参
vue3中使用router路由实现跳转传参