初识TS你需要知道哪些内容?

TS是什么

TS( TypeScript )是由微软推出的,是JavaScript 的一个超集,主要提供了类型系统和对 ES6 的支持,运行的时候,ts 编译成javascript。

由于js本身是弱类型语言,所以天然不存在类型系统,而ts这种静态类型的语言,相比最大的优点是类型系统的引入,强类型,遵循ES6,编译器严谨的语法检查。

因此,像vue,react,angular,小程序等都推荐使用ts。

此外,ts默认文件后缀名为 .ts ,同样script标签内容也变为<script lang="ts" setup>

TS定义变量

ts必须指定数据类型,ts除了包括js有的类型(boolean、number、string、array、undefined、null)之外,还多出几种类型,有tuple类型(元组类型)、enum类型(枚举类型)、any类型(任意类型)、void类型(没有任何类型)、 never类型。

其中void类型和 never类型比较特别,void类型表示定义方法没有返回值; never类型:是其他类型(包括null和undefined)的子类型,代表从不会出现的值 这意味着声明never变量只能被never类型所赋值

定义字符串

const str = ref<string>("abc")

const str = ref("abc")
//根据值类型自动判断改类型变量是什么

数字

const count = ref<number>(10)
const count = ref(10)

布尔值

const flag = ref<boolen>(true)
const flag = ref(true)

函数

function add(n1:string,n2:number):void{
}

接口

定义接口

interface Iuser = {
  name:string,
  age:number|string
}
const user = reactive<Iuser>({
   name:"mumu",
   age:18
})

在setup中获取props

import{defineProps} from 'vue'

intervace Iprops = {min:number,max:number}

const props =defineProps<Iprops>()

TS实例

Home.vue代码块

<template>
  <div class="home">
    <h1>vue+ts+setup+volar</h1>
    <button @click="addCount(2)">{{count}}</button>
    <button>{{num}}</button>
    <button v-if="flag">{{str}}</button>
    <div v-for="(item,index) in list" :key="index">{{item}}</div>
    <step :value="5" :max="20" :min="1" :step="2"></step>
  </div>
</template>

<script lang="ts" setup>
import step from "@/components/StepCom.vue"
// ts:any任意类型 void没有返回值 interface接口
// 声明变量
import { ref,reactive } from "vue"
const count = ref<number>(10);
const num = ref(5);
const str = ref<string>("i like ts")
const flag = ref<boolean>(true)
function addCount(n:number):void{
  count.value+=n;
}
interface Iuser {
  name:string,
  age:number,
  pet:undefined|string,
}
const list = reactive<Iuser>({name:"mumu",age:18,pet:"dog"})
</script>

StepCom.vue代码块

<template>
    <span>
        <button :disabled="count<=props.min" @click="countChange(-1)">-</button>
        <input type="text" v-model.number="count">
        <button @click="countChange(1)" :disabled="count>=props.max">+</button>
    </span>
</template>

<script lang="ts" setup>
import { ref,defineProps } from "vue";
interface Iprops{
    max:number,
    min:number,
    step:number,
    value:number,
}
const props = defineProps<Iprops>()
const count = ref<number>(props.value);
function countChange(n:number):void{
    count.value += props.step*n;
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值