TS的函数如何定义类型

如何接受arguments参数
复制代码
function add(...args: string[]) {

    let list4: IArguments = arguments;

}

add('1', '2')
自定义一个args
复制代码
interface A1 {

    callee: Function,

    length: number,

    [index: number]: any

}

function adds(...args: string[]) {

    let list4: A1 = arguments;

}

adds('1', '2')
多个参数
复制代码
function add1(a: number, b: number): number {

    return a + b;

}

const add2 = (a: number, b: number): number => {

    return a + b;

}
默认值
复制代码
const add3 = (a: number = 10, b: number = 15): number => {

    return a + b;

}
可选参数
复制代码
const add4 = (a?: number, b?: number): void => {

}
定义一个对象参数
复制代码
interface User {

    name: string,

    age: number

}

function getName(data: User): User {

    return data;

}
定义this参数

//ts 可以定义this 必须是第一个参数

复制代码
interface Obj {

    list: number[],

    add: (this: Obj, num: number) => void

}

let obj: Obj = {

    list: [1, 2, 3, 4],

    add(this: Obj, num: number) {

        this.list.push(num);

        console.log(this.list)

    }

}
相关推荐
anOnion1 小时前
构建无障碍组件之Carousel Pattern
前端·html·交互设计
ssshooter1 小时前
Tauri 2 iOS 开发避坑指南:文件保存、Dialog 和 Documents 目录的那些坑
前端·后端·ios
Можно2 小时前
深入理解 ES6 Proxy:与 Object.defineProperty 的全面对比
前端·javascript·vue.js
Birdy_x2 小时前
接口自动化项目实战(1):requests请求封装
开发语言·前端·python
吴声子夜歌3 小时前
TypeScript——基础类型(三)
java·linux·typescript
天天向上10243 小时前
vue el-table实现拖拽排序
前端·javascript·vue.js
柳杉4 小时前
Three.js × Blender:从建模到 Web 3D 的完整工作流深度解析
前端·javascript·数据可视化
reembarkation5 小时前
vue3中使用howler播放音频列表
前端·vue.js·音视频
手握风云-5 小时前
基于 Java 的网页聊天室(三)
服务器·前端·数据库
weixin199701080166 小时前
《识货商品详情页前端性能优化实战》
前端·性能优化