typescript中intrinsic代表什么?

偶然发现多出几个类型 这里intrinsic代表什么?

image.png

阅读 7.4k
3 个回答

intrinsic 是 typescript 引入的一个关键字,就如它的含义一样,是TS 内部 用到的。和其它TS提供的内置类型一样,Uppercase 这几个内置类型也是为了方便类型书写,但是专门针对字符串类型<字符串字面量、模板字符串>而提供的。它们的共同特点是,用它们生成的类型涉及到了的转换,而不是类型的转换,而这在TS里通过已有的类型书写方式是无法表达、也不太适合去表达的。所以 TS 只能以内置关键字 instrinsic 来通过编译期来实现,https://levelup.gitconnected.com/intrinsic-types-in-typescript-8b9f814410d 可以看看这篇搜到的文章。有了这几个类型,常用到的字符串类型的转换也基本够用了,但字符串本身用来当类型太特殊了,涉及到值的更改还能让其成为一个新类型,这有点强TS所难,举个例子:

type SomeStringContainsA = "abc" | "abca" | "abcd";
type SomeStringUppercaseAllA = string; // 这里如果我想严格约束该怎么写呢?
function upperCaseA(input: SomeStringContainsA):SomeStringUppercaseAllA{
   return input.split("").map((ch) => {
      if(ch === 'a')return 'A';
      return ch;
   }).join('');
}
let input: SomeStringContainsA = "abca";
let output: SomeStringUppercaseAllA = upperCaseA(input);
新手上路,请多包涵

内置类型,也就是TS内部实现的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏