[ts]接口
interface LabeledValue { label?: string; // 可选属性 } function printLabel(labelObj: LabeledValue) { console.log(labelObj.label); } const myObj = { size: 10, label: 'size 10 object' }; printLabel(myObj); interface Point { readonly x: number; readonly y: number; // 只读属性 } const ro: ReadonlyArray<number> = [1, 2, 3, 4]; interface SquareConfig { color?: string, width?: number, [propName: string]: any; } function createSquare(config: SquareConfig): void { console.log(config); } const mySquare = createSquare({ colour: 'red', width: 100 }); // 函数类型 interface SearchFunc { (source: string, subString: string): boolean; } // 可索引的类型 interface StringArray { [index: number]: string; } // 类类型 interface ClockInterface { currentTime: Date; setTime(d: Date): void; } class Clock implements ClockInterface { currentTime: Date setTime(d: Date) { this.currentTime = d; } constructor() { this.currentTime = new Date(); } } // 继承接口 interface Shape { color: string; } interface Square extends Shape { sideLength: number; } // 混合类型 interface Counter { (start: number): string; interval: number; reset():void; } function getCounter(): Counter { let counter = function (start:number): string { return `${start}`; } as Counter; counter.interval = 123; counter.reset = function(){}; return counter; } // 接口继承类 class Control { private state: any; } interface SelectableControl extends Control { select(): void; } class Button extends Control implements SelectableControl { select() {} } class TextBox extends Control { select() {} }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY