打字稿中具有不同类型的功能参数

问题描述

我正在编码一个小的TypeScript函数,该函数具有类型为Data或number的$( )参数。

错误:类型'number |类型上不存在属性'id'数据”

param

解决方法

您要指定param作为对象类型,而number不是对象类型(它是原始类型)。 TypeScript在这里寻求一个共同的分母。联合中的两种类型都必须具有id属性

,

忘记在object上加上引号

interface Data {
    id: number
}

function typescriptType(param: Data | number): void {
            let data;
            if (typeof param === 'object') {
                data = param.id;
            } else {
                data = param;
            }
    }

typescriptType({id : 1});
typescriptType(1);