typescript 学习笔记

typescript 学习笔记

申明全局类型,不用import导入,可以直接使用

  1. 项目更目录下创建typings目录

  2. typings中添加 index.d.ts, 在其中定义需要的类型

    interface MyType {
      foo: string,
      bar: string[]
    }
    
  3. 修改 tsconfig.json,添加字段 typeRoots

    {
      "compilerOptions": {
        "typeRoots": ["./node_modules/@types/", "./typings"],
      }
    }
    

在ts项目中 import 一个本地图片, 会报错cannot find module '.png'

在项目的.d.ts文件中,增加类型申明

declare module '*.svg'
declare module '*.png'
declare module '*.jpg'
declare module '*.jpeg'
declare module '*.gif'
declare module '*.bmp'
declare module '*.tiff'

Typescript 条件类型 ReturnType

ReturnType 获取函数返回值的类型

function fn () {
  return { a:1, b: 'foo'}
}
	
ReturnType<()=>string>  // string
ReturnType<(s:string)=>void>  // void
ReturnType<(<T extends U, U extends number[]>() => T)>  // number[]
ReturnType<typeof fn> // ReturnType<()=>{a:number, b:string}>  => {a:number, b:string}
posted @ 2022-01-07 17:52  shine_lovely  阅读(125)  评论(0编辑  收藏  举报