专栏首页方球typescript 入门-接口

typescript 入门-接口

interface 定义

interface i_Tree{
  leftLeaf: string
  rightLeaf: string
}
// 作为类型定义
const tree: i_Tree = {
  leftLeaf: 'left',
  rightLeaf: 'right'
}

可选属性

interface Man{
   name: string // 必选
   job?: string // 可选
}

只读

interface Man{
  readonly sex:string
  name: string
  job?: string
}

函数描述

interface i_talk{
  (msg:string): void;
}
const talk:i_talk = (msg: string) => {
  console.log(msg)
}

可索引

interface i_list{
  [index: number]: string
}
const li: i_list = ['ni', 'mi']

类描述

interface i_Man{
  name: string
}


class Man implements i_Man{
  name:string
  constructor(name: string) {
    this.name = name
  }
}




const c = new Man('cc')
console.log(c.name)

类构造器描述

interface i_Man{
  name: string
}


class Man implements i_Man{
  name:string
  constructor(name: string) {
    this.name = name
  }
}


// 定义构造函数接口
interface i_ManConstructor{
  new (name:string): i_Man
}


// 接收类定义作为参数
function createMan(c: i_ManConstructor, name: string):i_Man{
  return new c(name)
}

混合类型

interface i_talk{
  (msg?: string): void
  defaultMsg?: string
}




const talk: i_talk = function (msg?: string): void{
  console.log(msg || talk.defaultMsg)
}




talk.defaultMsg = 'not find msg'
talk()
// 函数也是对象,可以拥有自己的属性

继承接口

interface i_A{
  propA: string
}


interface i_B{
  propB: string
}


interface i_C extends i_A, i_B{
  propC: string
}


const c: i_C = {
  propA: 'a',
  propB: 'b',
  propC: 'c',
} 

继承类

class Control {
    private state: any;
}


interface SelectableControl extends Control {
    select(): void;
}


class Button extends Control implements SelectableControl {
    select() { }
}


class TextBox extends Control {
    select() { }
}


// 错误:“Image”类型缺少“state”属性。
class Image implements SelectableControl {
    select() { }
}


class Location {}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TypeScript 接口

    // 注意在上方中并不会对静态的,进行检查。只会对非静态的部分,即非构造函数部分进行检查

    mySoul
  • CTP接口入门

    本文主要面向有C++基础,并且想用C++来做程序化交易的用户。 主要介绍了CTP的简单使用方式以及在使用过程中易遇到的‘坑’,并附上一些代码帮助学习。

    用Python的交易员
  • TypeScript入门

    TypeScript 是最近比较新的一门语言,它主要用于代替 JavaScript。为什么要推出 TypeScript 来代替 JavaScript呢? 主要...

    音视频_李超
  • TypeScript 入门

    通过 node -v 命令查看本机是否安装,如果没有安装,参考node.js安装指南 根据电脑系统环境进行安装

    王秀龙
  • php写接口入门

    了解JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 ...

    benny
  • RESTful接口入门 转

    从下面的图片可以看出,当我们需要把相同的数据展示到不同的界面上时,提供一个可以访问后台的接口,前台只负责将数据友好的,华丽的展示出来即可。而不需要为每一个前台都...

    wuweixiang
  • 10-TypeScript中的接口

    接口是一种规约的约定,从接口继承的类必须实现接口的约定。在高级开发中,通常接口是用于实现各种设计模式的基础,没有接口,设计模式无从谈起。 定义接口: inter...

    用户1910585
  • 从C#到TypeScript - 接口

    从C#到TypeScript - 接口 为了更好的抽象出行为和属性,TypeScript在ES6的基础上增加了接口interface。 C#也有interfa...

    用户1147588
  • TypeScript入门第一天,所有类型+基础用法+接口使用

    const是对let的一个增强,它能阻止对一个变量再次赋值。如果在同一作用域内重复声明某个变量或常量就会报错,所有typescript内推荐使用它们来代替 va...

    玖柒的小窝
  • Typescript入门 原

    晓歌
  • typescript入门-类

    copy_left
  • TypeScript联合类型 接口

    这一块我们必须使用string或者number都支持的类型,那么下面我们可以进行调用扩展方法toString()

    HueiFeng
  • TypeScript联合类型 接口

    这一块我们必须使用string或者number都支持的类型,那么下面我们可以进行调用扩展方法toString()

    HueiFeng
  • TypeScript联合类型 接口

    这一块我们必须使用string或者number都支持的类型,那么下面我们可以进行调用扩展方法toString()

    HueiFeng
  • typescript基础篇(3):接口

    关于接口,你可以理解为定义了属性和类型,但是没有定义其它任何东西的构造函数。接口可以用来约束对象,函数乃至代码结构。

    一粒小麦
  • TypeScript入门笔记

    lilugirl
  • TypeScript入门教程

    HueiFeng
  • TypeScript 快速入门

    由于这种强弱类型之分根本不是某一个权威机构的定义,一般描述强类型有更强的类型约束,而弱类型中几乎没有什么约束。

    用户3045442
  • TypeScript 入门教程

    本文转载自https://ts.xcatliu.com/,作者是:xcatliu,文档对应的Github托管地址为:typescript-tutorial

    ccf19881030

扫码关注云+社区

领取腾讯云代金券