首页 > 解决方案 > 条件检查后调用的打字稿类型检查函数

问题描述

我不确定如何正确表达这个问题,但这是我的设置:

const params = getParams()

if (params) {
  checkParams()
}


function getParams(): {param1: string, param2: string} | null {
    ...
}

function checkParams() {
    const {param1, param2} = params
    ...
}

示例中的代码是有代表性的,即顺序、范围等。含义params可被checkParams()函数访问。我面临的问题是我paramscheckParams()函数中收到来自 TypeScript 的错误:

Object is possibly 'null'.ts(2531)

这是为什么?仅当is notcheckParams()时才被调用。params null

标签: typescript

解决方案


Typescript 不知道这是否是调用该函数的唯一方式。

您可以使用非空断言运算符告诉 Typescript 该对象确实会被定义:

function checkParams() {
    const {param1, param2} = params!;
}

推荐阅读