标签:bar 流动 捕获 ts 笔记 let typeof 类型 foo
当改变一个类型时,其他相关的类型自动更新,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
标签:bar,流动,捕获,ts,笔记,let,typeof,类型,foo 来源: https://www.cnblogs.com/yesyes/p/15539180.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。