美文网首页
TS语法函数重载

TS语法函数重载

作者: 码农私房菜 | 来源:发表于2023-12-21 09:29 被阅读0次

    类型定义

    /* 函数重载 */
    function testFn(data: object): void
    function testFn(lable: string, callback?: Function): void
    function testFn(lable: string, value: string, index?: number): void
    
    /* 方法重载 */
    interface TestFn {
        (data: object): void
        (lable: string, callback?: Function): void
        (lable: string, value: string, index?: number): void
    }
    interface Utils {
        testFn: TestFn
    }
    

    函数(方法)实现

    /* 函数实现 */
    function testFn() {}
    /* 方法实现 */
    const utils: Utils = {
        testFn: () => {},
    }
    

    调用有对应的提示

    // 函数调用
    testFn()
    // 方法调用
    utils.testFn()
    

    添加never可以有效的规避添加类型时,没有对应的处理逻辑

    type Method = 'GET' | 'POST' | 'PUT'
    function request(url: string, method: Method) {
        if (method === 'GET') {
        } else if (method === 'POST') {
        } else {
            // eslint-disable-next-line
            const n: never = method // 由于联合类型新增了【PUT】 导致TS错误提示, 可以有效的规避添加类型时,没有对应的处理逻辑
        }
    }
    

    相关文章

      网友评论

          本文标题:TS语法函数重载

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