添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Numeric environment variables and TypeScript

The TypeScript implementation of JavaScript’s standard, built-in objects can be surprisingly unforgiving. Two examples of this are the parseInt function, and the Number.isInteger method.

In TypeScript, parseInt accepts a string; Number.isInteger accepts a number or NaN . Anything else causes a type error. This can cause problems when working with numbers stored in environment variables.

Imagine you have an optional USER_LIMIT environment variable. If USER_LIMIT is not defined, you want to use the fallback value 20 .

In JavaScript, you can do something like this.

const userLimit = parseInt(process.env.USER_LIMIT) || 20

TypeScript requires a bit more work. Use the logical OR operator to ensure parseInt does not receive undefined 1 .

const envLimit = parseInt(process.env.USER_LIMIT || '')
const userLimit = Number.isInteger(envLimit) ? envLimit : 20

Footnotes