TS语法

作者: 莫问前程F6 | 来源:发表于2022-04-28 17:49 被阅读0次

    1. 自己定义变量可以设置基本类型

    let courseName:string = '玩转Vue3全家桶'
    let price:number = 129
    let isOnline:boolean = true
    let courseSales:undefined
    let me:[string,number] = ["大圣",18]

    2. 对象类型

    interface course {
    name:string,
    price:number[],
    avatar?:string|boolean,
    readonly address:string
    }

    3 函数类型

    type addType = (a:number,b:number)=>number
    interface addType1{
    (a:number,b:number):number
    }
    let add2:addType = function(x: number, y: number): number {
    return x + y;
    }

    4. 宿主环境的类型TS提供了

    let w:Window = window
    let ele:HTMLElement = document.createElement('div')
    ele.addEventListener('click',function(e:MouseEvent){
    w.alert(1)
    },false)

    5 泛型 (难点)

    <T>就是<某种类型>的意思,就是定义了一个类型变量,通过extends控制类型

    function test<某种类型>(args:某种类型):某种类型{
    return args
    }
    type ExtendsType<T> = T extends boolean ? "重学前端" : "玩转Vue3"
    function getProperty<T, K extends keyof T>(o: T, name: K): T[K] {
    return o[name]
    }
    type ReturnType1<T> = T extends ()=>infer P ?P:never

    6. 用到框架中的源码

    import {ref, Ref} from 'vue'
    const props = defineProps<{ title: string value?: number}>()

    interface Todo{
    title:string,
    done:boolean
    }
    let todos:Ref<Todo[]> = ref([{title:'学习Vue',done:false}])

    const App: React.FC<IProps> = (props) => {
    const [count, setCount] = useState<number>(1)
    return (
    <div className="App">
    <h1>hello world</h1>
    <h2>{count}</h2>
    </div>
    );
    }

    7.网络接口的类型 限制前后端接口的Typescript类型,限制参数传递,前后端联调爽歪歪

    import axios from 'axios'
    function request<T extends keyof API>(url:T,obj:Api[T]){
    return axios.post(url,obj)
    }
    interface Api{
    '/course/buy':{
    id:number
    },
    '/course/comment':{
    id:number,
    message:string
    }
    }
    request('/course/buy',{id:1})
    request('/course/comment',{id:1,message:'嘎嘎好看'})
    request('/course/comment',{id:1}) ###如果message必传 类型提醒缺少参数
    request('/course/404',{id:1}) ###接口不存在 类型报错

    相关文章

      网友评论

          本文标题:TS语法

          本文链接:https://www.haomeiwen.com/subject/xwpdyrtx.html