巧用TS

作者: 七月流火_9405 | 来源:发表于2020-05-22 17:33 被阅读0次

1.巧用注释(/** 注释内容*/)

场景:文件内、接口描述、方法描述、字段描述等等

2.巧用typeof

比如起初写法

interface Opt {

  timeout: number

}

const defaultOption: Opt = {

  timeout: 500

}

优化后:

const defaultOption = {

  timeout: 500

}

type Opt =typeof defaultOption

3.巧用联合类型(两者必选一)

interface Dinner1 {

  fish?: number,

  bear?: number,

}

type Dinner2 = {

  fish: number,} | {

  bear: number,
}

4.巧用查找类型

interface Person {

  addr: {

    city: string,

    street: string,

    num: number,

  }}

当需要使用 addr 的类型时,除了把类型提出来

interface Address {

  city: string,

  street: string,

  num: number

}

interface Person {

  addr: Address,

}

5.巧用查找类型+泛型+keyof

interface API {

  '/user': { name: **string** },

  '/menu': { foods: **Food**[] },}

const get = <URL extends keyof API>(url: URL): Promise<API[URL]>=> {

 return fetch(url).then(res => res.json())

}
图片2.png

6.巧用

DeepReadonly  type DeepReadonly<T> = {
  readonly [P in keyof T]: DeepReadonly<T[P]>;
}
const a = { foo: { bar: 22 } }

const b = a as DeepReadonly<typeof a>

A.foo.bar=33//ok

b.foo.bar=33//不ok

7.as的用法

8.interface Test{

}

相关文章

  • 巧用TS

    1.巧用注释(/** 注释内容*/) 场景:文件内、接口描述、方法描述、字段描述等等 2.巧用typeof 比如起...

  • vue3中常用工具类(自用)

    observer.ts setRem.ts usePagePosition.ts loadDevTools.ts ...

  • Egret白鹭引擎 H5时钟

    //TypeScript和Egret Main.ts Sec.ts Min.ts Hour.ts Pan.ts 文件目录

  • Typescript体系

    TS是什么 为什么要用TS TS能干什么 社区发展 周边生态 深入理解TS 接受TS 权衡 TS是什么 为什么要用...

  • typeScript语法

    ts类型 ts联合类型使用或 ts定义任意类型any ts定义函数返回值的类型 ts中的类定义 interface接口

  • typescript 入门教程二

    ts中面向对象成员修饰符:public , private , protexted(ts官方网站:ts) 在ts中...

  • jsmpeg系列四 源码ts.js TS格式解析流程

    一、TS HEADER 参考TS科普 2 包头TS流格式学习Ts流解析中难点说明百度文库 最直白明了的TS流分析 ...

  • axios 网上转载抄袭

    index.ts response.ts request.ts api api\bussniess\user 调用

  • 【第7篇】TypeScript泛型的案例代码详解

    1、最简单泛型例子 Ts代码 Js文件 2、泛型类型与接口 Ts代码一 Ts编译js代码一 Ts代码二 Ts编译j...

  • vscode中调试ts

    ts-node命令 一、新建ts文件二、debug 添加配置 三、当前目录添加局部 ts ts-node 自动编译...

网友评论

      本文标题:巧用TS

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