凡走过必留下痕迹 TypeScript 系列 第三回 : Narrowing 概念

哈搂~大家好我是阿华,今天来跟大家分享TypeScript 的 Narrowing 概念,

Narrowing
当你使用 TypeScript 时,Narrowing概念就像是一种类型的精準筛选,帮助你更準确地了解一个变数的类型。这有点像筛麵粉一样,把杂质去掉,只保留你需要的部分。

例如,如果你有一个变量,不确定它是字串还是数字,你可以使用特殊的筛选方法来确定它的类型。一旦筛选完成,你就知道了这个变数的类型,然后可以放心地使用它。这种筛选通常使用条件检查、类型断言或其他技巧来实现。

总结来说,Narrowing 就像是对变数进行精準的筛选,让你更了解它们的类型,以确保程式码的正确性。

下面我们考虑一个 padLeft 函数,padding 可能是 number 或 string,
我们透过 if 判断 typeof padding === "number"时,让 TypeScript 可以推断此时 padding 的类型是 number,
让我们可以安全地把 padding 变数当作 number 使用

function padLeft(padding: number | string, input: string) {  if (typeof padding === "number") {    return " ".repeat(padding) + input;  }  return padding + input;}

type guards
上面例子中我们看到的 typeof 关键字 在这里当作 type guards 来使用,type guards 就像是一种工具或方法,可以帮助我们确定变数的类型。

正如我们所知道的,JavaScript 支援 typeof 运算符,它可以提供有关运行时值类型的非常基本的资讯。
它会回传:

"string""number""bigint""boolean""symbol""undefined""object""function"

而对我们来说,我们现在知道可以透过这种方法来筛选变数的类型,让我们放心地使用它。

这回就到这里,下回我们来聊泛类型 Generics~


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章