美文网首页.Net Corejs css html
浅谈 interface 和 type

浅谈 interface 和 type

作者: sweetBoy_9126 | 来源:发表于2022-07-24 10:57 被阅读0次

type 类型别名

  1. 给类型起一个新名字,当声明非对象类型时适用
type MyNumber = number
type StringOrNumber = string | number
type Text = string | string[]
type Point = [number, number]
type Callback = (data: string) => void
  1. 支持传入泛型
    常用的工具方法都是通过 type 实现的
type Partial<T> = {
  [P in keyof T]?: T[P]
}

interface 接口

只能用于定义对象类型
可以定义对象类型上的属性和方法

相同点

  1. 都可以用来描述对象或函数
  2. 都支持扩展
    type 通过 & 交叉运算符来扩展,interface 通过 extends 关键字来扩展

区别

  1. type 可以为基本类型、联合类型或元祖类型定义别名,而接口不行

  2. 同名接口会自动合并,而类型别名不会
    1). 不同属性之间直接合并

interface User {
  name: string
}
interface User {
  id: number
}
合并成
interface User {
  name: string
  id: number
}

2). 相同属性不同类型,报错

interface User {
    name: string
 }
 interface User {
    // 报错 name 必须是 stirng 类型
     name: number
 }

3). type 直接报错

type User = {
  name: string
}
// 报错:标识符“User" 重复
type User = {
  id: number
}
  1. interface 会创建新的类型名,type 只是创建类型别名,并没有新创建类型。

使用场景

相关文章

  • 浅谈 interface 和 type

    type 类型别名 给类型起一个新名字,当声明非对象类型时适用 支持传入泛型常用的工具方法都是通过 type 实现...

  • Typescript 中的 interface 和 type 的

    interface VS type 大家使用 typescript 总会使用到 interface 和 type,...

  • 集合

    typeScript interface和type的区别interface 和 type 很相似,很多时候,用两种...

  • 看看TypeScript中interface和type间的区别(

    interface和type的区别是什么?本篇文章就来对比一下TypeScript中interface和type,...

  • interface接口

    1、 interface和type类似,区别:interface定义对象形式,不可以定义变量形式,type可以,能...

  • ts 学习笔记

    1、interface和type的区别 interface可定义多次,对象会被合并;type不允许重复定义 int...

  • type && interface

    //联合类型let num:number|stringnum = 8num = '123'num = 90num....

  • type interface

    TS在声明的时候进行严格检查,赋值的时候比较松 type:类型别名 声明函数:可以单独声明一个函数,也可以声明一个...

  • interface 和 type aliases 区别

    TypeScript interface vs type aliases 在大多数情况下,interface和类型...

  • 2018-12-13 Typescript Types VS I

    typescript types 和 interface 用法相同点和不同点整理 Interface 和 Type...

网友评论

    本文标题:浅谈 interface 和 type

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