vue项目中使用ts,script加上 lang=”ts“ 才能写ts代码
父组件
父组件
{{ money }}---{{ car }}
子组件
{{ money }}====={{ car }}
默认值没有显示 需要显示的选择开启
//vite.config.ts
export default defineConfig({
plugins: [vue({
reactivityTransform:true
})],
})
父组件
父组件
{{ money }}---{{ car }}
子组件
子组件
{{ money }}====={{ car }}
ref()会隐式的依据数据推导类型
推荐使用类型推导
// const money =ref(10)
const money =ref(10)
指定泛型
// 类型别名--单项类型
type Todo = {
id:number
name:string
done:boolean
}
const list = ref([])
/**
* 复杂数据 --后台返回数据,默认值是空,无法进行类型推导
[
{id:1,name:"zs",done:true},
{id:2,name:"ls",done:false}
]
*/
setTimeout(()=>{
list.value =[
{id:1,name:"zs",done:true},
{id:2,name:"ls",done:false}
]
},1000)
reactive()也会隐式的依据数据推导类型
推荐使用类型推断
// 默认值属性是固定的 --类型推断
const book =reactive({title:"vue3学习"})
推荐使用接口或者类型别名给变量指定类型
type Book1 = {
title:string
year?:number
}
// 不推荐使用reactive()的泛型参数
const b:Book1 = reactive({title:"hello"})
b.year = 2023
1.computed() 会从计算函数的返回值上推导出类型
const count = ref(100)
const doubleCount = computed(()=>count.value *2)
2.可以通过泛型参数显式指定类型
const doubleMoney = computed(()=>(count.value*2).toFixed(2))
模板ref需要通过一个显式指定的泛型参数,默认值是null
123
类型可能是null 或undefined的值
项目中安装的第三方库都是打包后的js代码,但是我们使用的时候却有对应的TS类型提示,为什么?
在第三方库中的js代码都有对应的TS类型声明文件
在ts中以 .d.ts为后缀的文件,我们称之为ts类型声明文件。它的作用是描述js模块内所有导出成员的类型信息
ts中有两种文件类型 .ts文件 .d.ts文件作用是什么?
所以 .ts是代码实现文件 .d.ts是类型声明文件
const arr =[1,2,3]
//鼠标放在forEach上查看类型 ctrl +鼠标左键 进入 lib.es5.d.ts类型声明文件中
arr.forEach
下载axios 查看类型声明文件 node_modules/axios/index.d.ts
src/types/data.d.ts
export type Person = {
id:number
name:string
age:number
}
App.vue
import {Person} from './types/data'
const p:Person ={
id:100,
name:"Zs",
age:19
}