TypeScript 中是否需要进行 Null 检查以确保运行时安全?

问题描述 投票:0回答:1

TypeScript 类型仅在编译时强制执行,在运行时不存在。鉴于此,如果我定义一个接受字符串参数的 TypeScript 函数,是否有必要执行 null 检查?出现这个问题是因为如果 API 返回 null,可能会导致运行时错误。

考虑以下代码片段:

const capitalise = (val: string) => {
   // Question: Is this check redundant due to TypeScript's type checking?
   if (!val) {
      return '';
   }

   return val.toUpperCase();
};

// Assume 'name' is fetched from an API or another source that could return null
const name: string = /* fetch from API or another source */;

capitalise(name);

在这种情况下,确保 TypeScript 应用程序运行时安全的最佳实践是什么?

javascript reactjs node.js typescript
1个回答
0
投票

显然,capitalize 函数不应该处理非字符串,如果它可以从 api 获取 null,那么这是 api 的错误类型。我认为正确的解决方案是正确键入 API 方法,为其指定

null | string
类型,然后添加一个处理程序,该处理程序将调用大写(或使用大写的代码)或给出错误。处理 api 错误的最佳实践是什么是一个单独问题的主题。

© www.soinside.com 2019 - 2024. All rights reserved.