zoukankan      html  css  js  c++  java
  • ts笔记 流动类型

    当改变一个类型时,其他相关的类型自动更新,ts这么设计是为了更好的与js的动态性相互结合。

    捕获变量的类型

    通过 typeof 操作符可以捕获到变量的类型(不适用于常量)

    let foo = 123;
    let bar: typeof foo; // 'bar' 类型与 'foo' 类型相同(在这里是: 'number')
    
    bar = 456; // ok
    

    捕获类成员的类型

    声明一个变量,表示要捕获的类型,然后使用typeof捕获这个类型。

    class Foo {
      foo: number;
    }
    
    declare let _foo: Foo;
    
    let bar: typeof _foo.foo; // number 类型
    

    捕获字符串类型

    使用常量声明一个类型,然后使用typeof捕获这个常量类型。

    const foo = 'Hello World';
    
    // 使用一个捕获的类型
    let bar: typeof foo;
    
    bar = 'Hello World'; // ok
    

    捕获键名

    typeof用于捕获变量的类型,keyof用于捕获类型的键名(注意是类型的键名),两者结合可以实现字符串枚举的效果。

    const colors = {
      red: 'red',
      blue: 'blue'
    };
    
    type Colors = keyof typeof colors; // 先使用typeof获取到类型 { red: string, blue: string },然后使用keyof获取到键名 'red' | 'blue'
    
    let color: Colors = 'red'; // OK
    color = 'blue'; // OK
    
    color = 'green'; // ERROR
    
    常用网站: SegmentFault | GitHub | 掘金社区
  • 相关阅读:
    Taro文件上传:Blob Url下载Blob对象本身并通过接口上传到服务器
    Taro项目遇到的问题
    RPC是什么?
    句柄
    正向代理和反向代理
    Go Micro搭建简单微服务
    gRPC奇怪的编译命令protoc
    官网下载Git方法
    Go/golang:解决依赖包模块安装问题
    URL
  • 原文地址:https://www.cnblogs.com/yesyes/p/15539180.html
Copyright © 2011-2022 走看看