leslie1943 / blog

Some front-end points and some interview questions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TypeScript: 数据类型/type/interface

leslie1943 opened this issue · comments

TypeScript 和 JavaScript

  • TypeScript 是JavaScript的超集
  • TypeScript 在JavaScript的基础上添加类型系统以及完全的支持ES6+语法
  • Angular, Vue3.0将直接支持TypeScript
  • TypeScript 需要编译,JavaScript基本直接被浏览器解析执行

TypeScript 你都用过哪些类型

  • 基本类型,数组类型,函数类型
  • 元组类型
  • 枚举类型

TypeScript 中type和interface的区别

  • 都允许拓展
// interface
interface Name { 
    name: string; 
}
interface User extends Name { 
    age: number; 
}

// type
type Name = { 
    name: string; 
}
type User = Name & { age: number };

// interface  扩展 type
type Name = { 
    name: string; 
}
interface User extends Name { 
age: number; 
}

// type 扩展 interface
interface Name { 
    name: string; 
}
type User = Name & { 
    age: number; 
}
  • type 可以声明基本类型别名,联合类型,元组等类型, interface只能描述一个对象或者函数
  • type 语句中还可以使用 typeof 获取实例的 类型进行赋值
  • interface 能够声明合并, type 不行
interface User {
    name: string
    age: number
}
 
interface User {
    sex: string
}