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)

    }

}
相关推荐
光影少年6 分钟前
前端如何虚拟列表优化?
前端·react native·react.js
Moment8 分钟前
一杯茶时间带你基于 Yjs 和 reactflow 构建协同流程图编辑器 😍😍😍
前端·后端·面试
invicinble25 分钟前
对于前端数据的生命周期的认识
前端
PieroPc29 分钟前
用FastAPI 后端 和 HTML/CSS/JavaScript 前端写一个博客系统 例
前端·html·fastapi
hunter145035 分钟前
2026.1.4 html简单制作
java·前端·笔记·html
鹏程十八少36 分钟前
Android 深入剖析Android内存泄漏:ViewPager2与Fragment的生命周期陷阱
android·前端·app
李少兄37 分钟前
深入理解 CSS opacity 属性
前端·css
幺零九零零38 分钟前
前端测试·1
前端
1024小神40 分钟前
uniapp项目中使用vue3和小程序组件父子通信
前端·小程序·uni-app
Knight_AL41 分钟前
Vue + Spring Boot 项目添加 /wvp 前缀的完整链路解析(从浏览器到静态资源)
前端·vue.js·spring boot