Typescript中的 interface 和 type 的区别
type和interface的异同
Typescript中的 interface 和 type 的区别
type和interface的异同
(本章节属于Typescript的规范,请查看相关基础内容后再阅读)
本期直接上干货
这也是怪异的地方,往往使用中很迷惑,都可以描述,那么为啥要做2个,可以看后面的区别
interface Product { name: string num: number } interface SetProduct { (name: string, num: number): void; }
type User = { name: string age: number }; type SetUser = (name: string, age: number)=> void;
都可以互相 extends
interface Pro{ name: string } interface Product extends Pro{ num: number }
type Pro = { name: string } interface Product extends Pro{ num: number }
type Pro = { name: string } type Product = Pro & { num: number }
interface Pro{ name: string } type Product = Pro & { num: number }
// 基本类型别名 type UserName = string // 联合类型 interface Dog { wong(); } interface Cat { miao(); } type Pet = Dog | Cat // 具体定义数组每个位置的类型 type PetList = [Dog, Pet] // 当你想获取一个变量的类型时,使用 typeof let div = document.createElement('div'); type B = typeof div // 其他的样例 type StringOrNumber = string | number; type Text = string | { text: string }; type NameLookup = Dictionary<string, Person>; type Callback<T> = (data: T) => void; type Pair<T> = [T, T]; type Coordinates = Pair<number>; type Tree<T> = T | { left: Tree<T>, right: Tree<T> };
interface User { name: string age: number } interface User { sex: string }
总的来说,能用interface来描述就用interface,毕竟这个好用语义化明显,发现有问题就改成type来实现。
您的鼓励是我前进的动力---
使用微信扫描二维码完成支付