Javascript typescript中不同类型的函数参数
我正在编写一个小的TypeScript函数,它有一个类型数据或数字的Javascript typescript中不同类型的函数参数,javascript,typescript,function,typescript-typings,Javascript,Typescript,Function,Typescript Typings,我正在编写一个小的TypeScript函数,它有一个类型数据或数字的param参数 错误:类型“number | Data”上不存在属性“id” interface Data { id: number } function typescriptType(param: Data | number): void { let data; if (typeof param === object) { data =
param
参数
错误:类型“number | Data”上不存在属性“id”
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);
您希望将
param
指定为对象类型,并且number
不是对象类型(它是一个基元)。TypeScript在这里寻找一个共同点;联合中的两种类型都必须具有id
属性忘记在对象上添加引号
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);
问题是什么?错误告诉您,数字没有名为
id
的属性,因此您需要弄清楚您真正想要对数字输入做什么。了解错误出现的确切行非常有用