广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue中如何运用TS语法
  • 642
分享到

Vue中如何运用TS语法

Vue运用TS语法Vue TS语法 2023-02-28 12:02:47 642人浏览 泡泡鱼
摘要

目录一、父子传值的用法父传子:defineProps的TS写法子传父:defineEmits的TS写法二、ref/Reactive的TS用法1.简单数据类型可以不定义ts类型2.如果

一、父子传值的用法

父传子:defineProps的TS写法

// 父组件:和 Vue2 一样正常传值
<template>
  <div class="login-page">
    <cp-nav-bar title="登录" right-text="注册"></cp-nav-bar>
  </div>
</template>
// 子组件:接收
<script setup lang="ts">
import { defineProps } from 'vue'
const props = defineProps<{
  title: string
  rightText?: string // ?表示可传可不传
}>()
// js中使用
console.log(props.title)
</script>
 
<template>
  <!-- 模板中直接使用变量名 -->
  <van-nav-bar
    fixed
    left-arrow
    :title="title"
    :right-text="rightText"
  ></van-nav-bar>
</template>

补充:

如果需要给 props 设置默认值,需要使用 withDefaults 函数:

const props = withDefaults(defineProps<{
  title?: string
  rightText?: string
}>(),{
  title: '首页'
})
 
// 以上代码通过语法糖解构,可以优化成如下代码:
const { title, title= "首页" } = defineProps<{
  title?: string
  rightText?: string
}>();

子传父:defineEmits的TS写法

// 子传
const emit = defineEmits<{
  (e: 'changeMoney', money: number): void
  (e: 'changeCar', car: string): void
}>()
 
// 父组件:和 vue2 一样正常接收
// @changeMoney="方法名"

二、ref/reactive的TS用法

1.简单数据类型可以不定义ts类型

ref() 会隐式的依据数据推导类型

// const money = ref<number>(10)
const money = ref(10)

2.如果是复杂类型,建议用泛型

type Todo = {
  id: number
  name: string
  done: boolean
}
const list = ref<Todo[]>([])
list.value = [
  { id: 1, name: '吃饭', done: false },
  { id: 2, name: '睡觉', done: true }
]

三、computed的TS用法 

推荐泛型,一行搞定

const total = computed<string>(() => (count.value * 2).toFixed(2));

四、非空断言

1.可选链

<script setup lang="ts">
import { onMounted, ref } from 'vue';
 
const input = ref< htmlInputElement | null >(null)
 
onMounted(()=>{
  // 如果获取的元素不是input,就可能没有value值
  console.log(input.value?.value);
})
</script>
 
<template>
  <div>App组件</div>
  <input type="text" ref="input" value="abc">
</template>

2.非空断言

  // 一定要确定不为空!!!
  console.log(input.value!.value)
  input.value!.value = '123'

五、自定义TypeScript类型声明文件

1.给JS文件提供类型

在导入 .js 文件时,TS 会自动加载与 .js 同名的 .d.ts 文件,以提供类型声明。

具体步骤如下:

1.declare 关键字:用于类型声明,为其他地方(比如,.js 文件)已存在的变量声明类型,而不是创建一个新的变量。

2.对于 type interface 等这些明确就是 TS 类型的(只能在 TS 中使用的),可以省略 declare 关键字。

3.其他 JS 变量,应该使用 declare 关键字,明确指定此处用于类型声明。

// 参考示例:自定义组件的类型,必须是同名的.d.ts文件
import CpIcon from '@/components/CpIcon.vue'
 
declare module 'vue' {
  interface GlobalComponents {
    CpIcon: typeof CpIcon
  }
}

2.共享类型

如果多个 .ts 文件中都用到同一个类型,此时可以创建 .d.ts 文件提供该类型,实现类型共享。

1.创建 index.d.ts 类型声明文件。

2.创建需要共享的类型,并使用 export 导出(TS 中的类型也可以使用 import/export 实现模块化功能)。

3.在需要使用共享类型的 .ts 文件中,通过 import 导入即可(.d.ts 后缀导入时,直接省略)。

到此这篇关于Vue中如何运用TS语法的文章就介绍到这了,更多相关Vue运用TS语法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue中如何运用TS语法

本文链接: https://www.lsjlt.com/news/197786.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Vue中如何运用TS语法
    目录一、父子传值的用法父传子:defineProps的TS写法子传父:defineEmits的TS写法二、ref/reactive的TS用法1.简单数据类型可以不定义ts类型2.如果...
    99+
    2023-02-28
    Vue运用TS语法 Vue TS语法
  • Vue中怎么运用TS语法
    本文小编为大家详细介绍“Vue中怎么运用TS语法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中怎么运用TS语法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、父子传值的用法父传子:defineProp...
    99+
    2023-07-05
  • Vue-cli3中如何使用TS语法
    这篇文章主要讲解了“Vue-cli3中如何使用TS语法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue-cli3中如何使用TS语法”吧!ts有什么用?类型检查、直接编译到原生js、引入新...
    99+
    2023-07-05
  • Vue-cli3中使用TS语法示例代码
    目录ts有什么用?为什么用ts?1、引入Typescript包2、配置3、让项目识别.ts4、vue组件的编写ts有什么用? 类型检查、直接编译到原生js、引入新的语法糖 为什么用t...
    99+
    2023-02-23
    Vue-cli3使用TS语法 Vue-cli3使用TS
  • 如何在Vue3中使用<script lang=“ts“ setup>语法糖
    这篇“如何在Vue3中使用<script lang=“ts“ setup>语法糖”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下...
    99+
    2023-07-06
  • 详解如何在Vue3使用<scriptlang=“ts“setup>语法糖
    目录迁移组件隐式返回definePropsdefineEmits默认关闭和defineExposeVue 3.2 引入了语法,这是一种稍微不那么冗长的声明组件的方式。您可以通过向 S...
    99+
    2022-11-13
  • Vue3项目中引用TS语法的实例讲解
    目录基础语法vue-routervuex#####elementPlusaxiossetup script基础语法 定义data  //script标签上 **lang="...
    99+
    2022-11-13
  • 怎么在Vue3中使用<script lang=“ts“ setup>语法糖
    迁移组件以下组件有两个道具(要显示的和一个标志)。通过另一个组件,计算模板中显示的小马图像的URL,基于这两个道具。该组件还会在用户单击它时发出一个事件。The image selected while the Ponypony ...
    99+
    2023-05-16
    Vue3 setup
  • vue3+ts实际开发中该如何优雅书写vue3语法
    目录vue3语法的发展优势Composition Api类型约束编译器宏definePropsdefineEmitsdefineExpose总结vue3语法的发展 Vue3 在早期版...
    99+
    2022-11-13
    vue3 ts 教程 vue3 写法 vue方法怎么写
  • vue3中如何使用ts
    目录如何使用tsapp.vueheader.vuelist.vuelistitem.vuefooter.vue如何使用ts 在创建vue脚手架的时候吧typescript选上 app...
    99+
    2022-11-13
  • 如何在vue中使用jsx语法
    目录为什么需要在vue中使用jsx在vue中如何使用jsxtemplate转jsx的语法转换为什么需要在vue中使用jsx 几年前面试的时候,被问过这个问题,当时我一脸懵,这两个东西...
    99+
    2022-11-13
  • 如何使用Vue3+TS实现语音播放组件
    这篇文章主要介绍如何使用Vue3+TS实现语音播放组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!该功能将使用vue3 + TS来实现语音播放组件,使用什么技术不重要,重要的是看懂了核心逻辑后,通过原生js、rea...
    99+
    2023-06-29
  • R语言中library无法运行如何解决
    如果在R语言中无法运行library函数,可以尝试以下几种解决方法:1. 检查是否安装了相关的包:在运行library函数之前,需要...
    99+
    2023-10-09
    R语言
  • Vue如何取消eslint语法
    这篇文章给大家分享的是有关Vue如何取消eslint语法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。由于vue对语法的限制过于严格,以至于在我第一次编译运行的时候一直编译失败,...
    99+
    2022-10-19
  • JAVA语法中加号运算符怎么用
    小编今天带大家了解JAVA语法中加号运算符怎么用,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“JAVA语法中加号运算符怎么用”的知识...
    99+
    2023-06-17
  • vue3.2+ts如何实现在方法中可调用的拟态框弹窗
    这篇“vue3.2+ts如何实现在方法中可调用的拟态框弹窗”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3.2+ts如...
    99+
    2023-07-04
  • 如何运用Python循环语句
    本篇内容介绍了“如何运用Python循环语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  一、for循环  for循环可以用来遍历某一对...
    99+
    2023-06-02
  • C语言中求余运算符如何使用
    这篇文章主要介绍了C语言中求余运算符如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中求余运算符如何使用文章都会有所收获,下面我们一起来看看吧。C语言中求余运算符的使用C语言的算数运算符中最有特点的...
    99+
    2023-07-05
  • c语言中移位运算符如何使用
    C语言中的移位运算符有两种:左移位运算符()。这两种运算符用于对一个数进行位移操作。左移位运算符(>)和算术右移(>>>)。逻辑右移...
    99+
    2023-09-14
    c语言
  • C语言如何使用移位实现乘除法运算
    这篇文章主要为大家展示了“C语言如何使用移位实现乘除法运算”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言如何使用移位实现乘除法运算”这篇文章吧。移位实现乘...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作